{"action":"created","comment":{"url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments/56700115","id":56700115,"diff_hunk":"@@ -250,8 +254,19 @@ OpenSim_DECLARE_ABSTRACT_OBJECT(Joint, ModelComponent);\n     calcEquivalentSpatialForce(const SimTK::State &s, \n                                const SimTK::Vector &mobilityForces) const;\n \n+    // Reaction forces (direct calls into Simbody methods)\n+    /** Reaction forces on Child Body at Origin in Ground frame @see SimTK::MobilizedBody method. */\n+    SimTK::SpatialVec\n+        calcReactionOnChildAtOriginInGround(const SimTK::State &s) const {\n+        return getChildFrame().getMobilizedBody().findMobilizerReactionOnBodyAtOriginInGround(s);\n+    }\n+    /** Reaction forces on Parent Body at Origin in Ground frame @see SimTK::MobilizedBody method. */\n+    SimTK::SpatialVec\n+        calcReactionOnParentAtOriginInGround(const SimTK::State &s) const {\n+        return getChildFrame().getMobilizedBody().findMobilizerReactionOnParentAtOriginInGround(s);","path":"OpenSim/Simulation/SimbodyEngine/Joint.h","position":24,"original_position":24,"commit_id":"482bdeb1954b04ae5a3277f0c3d4eabd98359673","original_commit_id":"482bdeb1954b04ae5a3277f0c3d4eabd98359673","user":{"login":"msdemers","id":4503414,"avatar_url":"https://avatars.githubusercontent.com/u/4503414?v=3","gravatar_id":"","url":"https://api.github.com/users/msdemers","html_url":"https://github.com/msdemers","followers_url":"https://api.github.com/users/msdemers/followers","following_url":"https://api.github.com/users/msdemers/following{/other_user}","gists_url":"https://api.github.com/users/msdemers/gists{/gist_id}","starred_url":"https://api.github.com/users/msdemers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/msdemers/subscriptions","organizations_url":"https://api.github.com/users/msdemers/orgs","repos_url":"https://api.github.com/users/msdemers/repos","events_url":"https://api.github.com/users/msdemers/events{/privacy}","received_events_url":"https://api.github.com/users/msdemers/received_events","type":"User","site_admin":false},"body":"yes, per your question in the comments section, this is the right approach. The child mobilized body matches the mobilizer of the joint. Asking it for it's child and parent reaction loads is appropriate.","created_at":"2016-03-18T18:16:13Z","updated_at":"2016-03-18T18:16:13Z","html_url":"https://github.com/opensim-org/opensim-core/pull/861#discussion_r56700115","pull_request_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/861","_links":{"self":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments/56700115"},"html":{"href":"https://github.com/opensim-org/opensim-core/pull/861#discussion_r56700115"},"pull_request":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/861"}}},"pull_request":{"url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/861","id":63413020,"html_url":"https://github.com/opensim-org/opensim-core/pull/861","diff_url":"https://github.com/opensim-org/opensim-core/pull/861.diff","patch_url":"https://github.com/opensim-org/opensim-core/pull/861.patch","issue_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/861","number":861,"state":"open","locked":false,"title":"Add Joint reaction output and fix doxygen per PR","user":{"login":"aymanhab","id":3972208,"avatar_url":"https://avatars.githubusercontent.com/u/3972208?v=3","gravatar_id":"","url":"https://api.github.com/users/aymanhab","html_url":"https://github.com/aymanhab","followers_url":"https://api.github.com/users/aymanhab/followers","following_url":"https://api.github.com/users/aymanhab/following{/other_user}","gists_url":"https://api.github.com/users/aymanhab/gists{/gist_id}","starred_url":"https://api.github.com/users/aymanhab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aymanhab/subscriptions","organizations_url":"https://api.github.com/users/aymanhab/orgs","repos_url":"https://api.github.com/users/aymanhab/repos","events_url":"https://api.github.com/users/aymanhab/events{/privacy}","received_events_url":"https://api.github.com/users/aymanhab/received_events","type":"User","site_admin":false},"body":"Remaining outputs for Joint per #851 \r\n\r\nPlease review the names of the methods used from Simbody since Joint has Child & Parent frames and the SimTK::MobilizedBody refers to Body & Child. I assumed we get MobilizedBody from Child frame.","created_at":"2016-03-18T17:56:31Z","updated_at":"2016-03-18T18:16:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9f53afd870496b5505bc9d3e1749c7a2c785f41e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/861/commits","review_comments_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/861/comments","review_comment_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/861/comments","statuses_url":"https://api.github.com/repos/opensim-org/opensim-core/statuses/482bdeb1954b04ae5a3277f0c3d4eabd98359673","head":{"label":"opensim-org:add_outputs","ref":"add_outputs","sha":"482bdeb1954b04ae5a3277f0c3d4eabd98359673","user":{"login":"opensim-org","id":4370782,"avatar_url":"https://avatars.githubusercontent.com/u/4370782?v=3","gravatar_id":"","url":"https://api.github.com/users/opensim-org","html_url":"https://github.com/opensim-org","followers_url":"https://api.github.com/users/opensim-org/followers","following_url":"https://api.github.com/users/opensim-org/following{/other_user}","gists_url":"https://api.github.com/users/opensim-org/gists{/gist_id}","starred_url":"https://api.github.com/users/opensim-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensim-org/subscriptions","organizations_url":"https://api.github.com/users/opensim-org/orgs","repos_url":"https://api.github.com/users/opensim-org/repos","events_url":"https://api.github.com/users/opensim-org/events{/privacy}","received_events_url":"https://api.github.com/users/opensim-org/received_events","type":"Organization","site_admin":false},"repo":{"id":20775600,"name":"opensim-core","full_name":"opensim-org/opensim-core","owner":{"login":"opensim-org","id":4370782,"avatar_url":"https://avatars.githubusercontent.com/u/4370782?v=3","gravatar_id":"","url":"https://api.github.com/users/opensim-org","html_url":"https://github.com/opensim-org","followers_url":"https://api.github.com/users/opensim-org/followers","following_url":"https://api.github.com/users/opensim-org/following{/other_user}","gists_url":"https://api.github.com/users/opensim-org/gists{/gist_id}","starred_url":"https://api.github.com/users/opensim-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensim-org/subscriptions","organizations_url":"https://api.github.com/users/opensim-org/orgs","repos_url":"https://api.github.com/users/opensim-org/repos","events_url":"https://api.github.com/users/opensim-org/events{/privacy}","received_events_url":"https://api.github.com/users/opensim-org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/opensim-org/opensim-core","description":"SimTK OpenSim 4.0 C++ libraries and command-line applications, and Java/Python wrapping.","fork":false,"url":"https://api.github.com/repos/opensim-org/opensim-core","forks_url":"https://api.github.com/repos/opensim-org/opensim-core/forks","keys_url":"https://api.github.com/repos/opensim-org/opensim-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/opensim-org/opensim-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/opensim-org/opensim-core/teams","hooks_url":"https://api.github.com/repos/opensim-org/opensim-core/hooks","issue_events_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/events{/number}","events_url":"https://api.github.com/repos/opensim-org/opensim-core/events","assignees_url":"https://api.github.com/repos/opensim-org/opensim-core/assignees{/user}","branches_url":"https://api.github.com/repos/opensim-org/opensim-core/branches{/branch}","tags_url":"https://api.github.com/repos/opensim-org/opensim-core/tags","blobs_url":"https://api.github.com/repos/opensim-org/opensim-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/opensim-org/opensim-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/opensim-org/opensim-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/opensim-org/opensim-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/opensim-org/opensim-core/statuses/{sha}","languages_url":"https://api.github.com/repos/opensim-org/opensim-core/languages","stargazers_url":"https://api.github.com/repos/opensim-org/opensim-core/stargazers","contributors_url":"https://api.github.com/repos/opensim-org/opensim-core/contributors","subscribers_url":"https://api.github.com/repos/opensim-org/opensim-core/subscribers","subscription_url":"https://api.github.com/repos/opensim-org/opensim-core/subscription","commits_url":"https://api.github.com/repos/opensim-org/opensim-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/opensim-org/opensim-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/opensim-org/opensim-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/opensim-org/opensim-core/contents/{+path}","compare_url":"https://api.github.com/repos/opensim-org/opensim-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/opensim-org/opensim-core/merges","archive_url":"https://api.github.com/repos/opensim-org/opensim-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/opensim-org/opensim-core/downloads","issues_url":"https://api.github.com/repos/opensim-org/opensim-core/issues{/number}","pulls_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls{/number}","milestones_url":"https://api.github.com/repos/opensim-org/opensim-core/milestones{/number}","notifications_url":"https://api.github.com/repos/opensim-org/opensim-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/opensim-org/opensim-core/labels{/name}","releases_url":"https://api.github.com/repos/opensim-org/opensim-core/releases{/id}","deployments_url":"https://api.github.com/repos/opensim-org/opensim-core/deployments","created_at":"2014-06-12T16:57:56Z","updated_at":"2016-02-08T15:25:29Z","pushed_at":"2016-03-18T17:56:32Z","git_url":"git://github.com/opensim-org/opensim-core.git","ssh_url":"git@github.com:opensim-org/opensim-core.git","clone_url":"https://github.com/opensim-org/opensim-core.git","svn_url":"https://github.com/opensim-org/opensim-core","homepage":"https://opensim.stanford.edu","size":130195,"stargazers_count":27,"watchers_count":27,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":21,"mirror_url":null,"open_issues_count":252,"forks":21,"open_issues":252,"watchers":27,"default_branch":"master"}},"base":{"label":"opensim-org:master","ref":"master","sha":"e668f199e084f1e5de4e12487fe7bae85ddeff07","user":{"login":"opensim-org","id":4370782,"avatar_url":"https://avatars.githubusercontent.com/u/4370782?v=3","gravatar_id":"","url":"https://api.github.com/users/opensim-org","html_url":"https://github.com/opensim-org","followers_url":"https://api.github.com/users/opensim-org/followers","following_url":"https://api.github.com/users/opensim-org/following{/other_user}","gists_url":"https://api.github.com/users/opensim-org/gists{/gist_id}","starred_url":"https://api.github.com/users/opensim-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensim-org/subscriptions","organizations_url":"https://api.github.com/users/opensim-org/orgs","repos_url":"https://api.github.com/users/opensim-org/repos","events_url":"https://api.github.com/users/opensim-org/events{/privacy}","received_events_url":"https://api.github.com/users/opensim-org/received_events","type":"Organization","site_admin":false},"repo":{"id":20775600,"name":"opensim-core","full_name":"opensim-org/opensim-core","owner":{"login":"opensim-org","id":4370782,"avatar_url":"https://avatars.githubusercontent.com/u/4370782?v=3","gravatar_id":"","url":"https://api.github.com/users/opensim-org","html_url":"https://github.com/opensim-org","followers_url":"https://api.github.com/users/opensim-org/followers","following_url":"https://api.github.com/users/opensim-org/following{/other_user}","gists_url":"https://api.github.com/users/opensim-org/gists{/gist_id}","starred_url":"https://api.github.com/users/opensim-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opensim-org/subscriptions","organizations_url":"https://api.github.com/users/opensim-org/orgs","repos_url":"https://api.github.com/users/opensim-org/repos","events_url":"https://api.github.com/users/opensim-org/events{/privacy}","received_events_url":"https://api.github.com/users/opensim-org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/opensim-org/opensim-core","description":"SimTK OpenSim 4.0 C++ libraries and command-line applications, and Java/Python wrapping.","fork":false,"url":"https://api.github.com/repos/opensim-org/opensim-core","forks_url":"https://api.github.com/repos/opensim-org/opensim-core/forks","keys_url":"https://api.github.com/repos/opensim-org/opensim-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/opensim-org/opensim-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/opensim-org/opensim-core/teams","hooks_url":"https://api.github.com/repos/opensim-org/opensim-core/hooks","issue_events_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/events{/number}","events_url":"https://api.github.com/repos/opensim-org/opensim-core/events","assignees_url":"https://api.github.com/repos/opensim-org/opensim-core/assignees{/user}","branches_url":"https://api.github.com/repos/opensim-org/opensim-core/branches{/branch}","tags_url":"https://api.github.com/repos/opensim-org/opensim-core/tags","blobs_url":"https://api.github.com/repos/opensim-org/opensim-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/opensim-org/opensim-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/opensim-org/opensim-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/opensim-org/opensim-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/opensim-org/opensim-core/statuses/{sha}","languages_url":"https://api.github.com/repos/opensim-org/opensim-core/languages","stargazers_url":"https://api.github.com/repos/opensim-org/opensim-core/stargazers","contributors_url":"https://api.github.com/repos/opensim-org/opensim-core/contributors","subscribers_url":"https://api.github.com/repos/opensim-org/opensim-core/subscribers","subscription_url":"https://api.github.com/repos/opensim-org/opensim-core/subscription","commits_url":"https://api.github.com/repos/opensim-org/opensim-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/opensim-org/opensim-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/opensim-org/opensim-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/comments{/number}","contents_url":"https://api.github.com/repos/opensim-org/opensim-core/contents/{+path}","compare_url":"https://api.github.com/repos/opensim-org/opensim-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/opensim-org/opensim-core/merges","archive_url":"https://api.github.com/repos/opensim-org/opensim-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/opensim-org/opensim-core/downloads","issues_url":"https://api.github.com/repos/opensim-org/opensim-core/issues{/number}","pulls_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls{/number}","milestones_url":"https://api.github.com/repos/opensim-org/opensim-core/milestones{/number}","notifications_url":"https://api.github.com/repos/opensim-org/opensim-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/opensim-org/opensim-core/labels{/name}","releases_url":"https://api.github.com/repos/opensim-org/opensim-core/releases{/id}","deployments_url":"https://api.github.com/repos/opensim-org/opensim-core/deployments","created_at":"2014-06-12T16:57:56Z","updated_at":"2016-02-08T15:25:29Z","pushed_at":"2016-03-18T17:56:32Z","git_url":"git://github.com/opensim-org/opensim-core.git","ssh_url":"git@github.com:opensim-org/opensim-core.git","clone_url":"https://github.com/opensim-org/opensim-core.git","svn_url":"https://github.com/opensim-org/opensim-core","homepage":"https://opensim.stanford.edu","size":130195,"stargazers_count":27,"watchers_count":27,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":21,"mirror_url":null,"open_issues_count":252,"forks":21,"open_issues":252,"watchers":27,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/861"},"html":{"href":"https://github.com/opensim-org/opensim-core/pull/861"},"issue":{"href":"https://api.github.com/repos/opensim-org/opensim-core/issues/861"},"comments":{"href":"https://api.github.com/repos/opensim-org/opensim-core/issues/861/comments"},"review_comments":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/861/comments"},"review_comment":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/861/commits"},"statuses":{"href":"https://api.github.com/repos/opensim-org/opensim-core/statuses/482bdeb1954b04ae5a3277f0c3d4eabd98359673"}}}}