{"action":"created","issue":{"url":"https://api.github.com/repos/opensim-org/opensim-core/issues/990","repository_url":"https://api.github.com/repos/opensim-org/opensim-core","labels_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/990/labels{/name}","comments_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/990/comments","events_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/990/events","html_url":"https://github.com/opensim-org/opensim-core/pull/990","id":158025297,"number":990,"title":"Update GeometryPath computations to use Point methods","user":{"login":"aseth1","id":6494122,"avatar_url":"https://avatars.githubusercontent.com/u/6494122?v=3","gravatar_id":"","url":"https://api.github.com/users/aseth1","html_url":"https://github.com/aseth1","followers_url":"https://api.github.com/users/aseth1/followers","following_url":"https://api.github.com/users/aseth1/following{/other_user}","gists_url":"https://api.github.com/users/aseth1/gists{/gist_id}","starred_url":"https://api.github.com/users/aseth1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aseth1/subscriptions","organizations_url":"https://api.github.com/users/aseth1/orgs","repos_url":"https://api.github.com/users/aseth1/repos","events_url":"https://api.github.com/users/aseth1/events{/privacy}","received_events_url":"https://api.github.com/users/aseth1/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":15,"created_at":"2016-06-01T22:55:47Z","updated_at":"2016-06-02T19:47:11Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/990","html_url":"https://github.com/opensim-org/opensim-core/pull/990","diff_url":"https://github.com/opensim-org/opensim-core/pull/990.diff","patch_url":"https://github.com/opensim-org/opensim-core/pull/990.patch"},"body":"Computations by `GeometryPath` to determine the location of and speed between points are delegated to `Point`, which is now performing these calculations and reduce duplication. This greatly simplifies `GeometryPath`, but more importantly allows us to eliminate a major source of property mangling during a simulation: `GeometryPath` no longer updates a `MovingPathPoint`'s `location` property during a simulation. We are a lot closer towards enforcing that properties must be `const` during a simulation (`GeometryPath` being the primary violator). I agree with arguments that `MovingPathPoint` should not even have a `location` property, which it inherits from its `Station` super class. `PathPoint` then, should not be a `Station` either. I will leave that for another PR. \r\n\r\nI also made  `PathPoint` (and its children) conform to the Component API and eliminated custom *connect* like methods, which required a confusing call sequence (e.g. called when adding a Point). From the API perspective there was no need or use of the `PathPoint`'s reference (pointer)  back to a `GeometryPath` and all the `connectToModelAndPath` and `connectToModelAndBody` were removed. We are one step closer to eliminating `PathPoint` altogether and having `GeometryPath` being composed by `Points`. \r\n\r\nNonetheless, the updated PathPoints are included in `testComponents` with some added handling for `Connector<Coordinate>`.\r\n\r\nI detected no change in test performances (timings) due to these changes.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"35\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/opensim-org/opensim-core/990)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/opensim-org/opensim-core/issues/comments/223401409","html_url":"https://github.com/opensim-org/opensim-core/pull/990#issuecomment-223401409","issue_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/990","id":223401409,"user":{"login":"chrisdembia","id":846001,"avatar_url":"https://avatars.githubusercontent.com/u/846001?v=3","gravatar_id":"","url":"https://api.github.com/users/chrisdembia","html_url":"https://github.com/chrisdembia","followers_url":"https://api.github.com/users/chrisdembia/followers","following_url":"https://api.github.com/users/chrisdembia/following{/other_user}","gists_url":"https://api.github.com/users/chrisdembia/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisdembia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisdembia/subscriptions","organizations_url":"https://api.github.com/users/chrisdembia/orgs","repos_url":"https://api.github.com/users/chrisdembia/repos","events_url":"https://api.github.com/users/chrisdembia/events{/privacy}","received_events_url":"https://api.github.com/users/chrisdembia/received_events","type":"User","site_admin":false},"created_at":"2016-06-02T19:47:11Z","updated_at":"2016-06-02T19:47:11Z","body":"\n\n\n\n\n\nReviewed 6 of 17 files at r1.\nReview status: 6 of 17 files reviewed at latest revision, 9 unresolved discussions, some commit checks broke.\n\n---\n\n\n\n*Comments from [Reviewable](https://reviewable.io:443/reviews/opensim-org/opensim-core/990)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"chrisdembia"}}