{"action":"created","comment":{"url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments/23556344","id":23556344,"diff_hunk":"@@ -68,88 +87,135 @@ OpenSim_DECLARE_ABSTRACT_OBJECT(Frame, ModelComponent);\n     Frame();\n \n     virtual ~Frame() {};\n+\n     /** @name Spatial Operations for Frames\n     These methods allow access to the frame's transform and some convenient\n     operations that could be performed with this transform.*/\n     /**@{**/\n \n     /**\n-    * Get the transform that describes the translation and rotation of this\n-    * frame (F frame) relative to the ground frame (G frame).  This method\n-    * returns the transform converting quantities expressed in F frame to\n-    * quantities expressed in the G frame. This is mathematically stated as,\n-    * vec_G = X_GF*vec_F ,\n-    * where X_GF is the transform returned by getGroundTransform.\n-    *\n-    * @param state       The state applied to the model when determining the\n-    *                    transform.\n-    * @return transform  The transform between this frame and the ground frame\n+    Get the transform of this frame (F) relative to the ground frame (G).\n+    It transforms quantities expressed in F into quantities expressed\n+    in G. This is mathematically stated as:\n+        vec_G = X_GF*vec_F ,\n+    where X_GF is the transform returned by getGroundTransform.\n+\n+    @param state       The state applied to the model when determining the\n+                       transform.\n+    @return transform  The transform between this frame and the ground frame\n     */\n-    SimTK::Transform getGroundTransform(const SimTK::State& state) const {\n-        return calcGroundTransform(state);\n-    }\n+    const SimTK::Transform& getGroundTransform(const SimTK::State& state) const;\n \n     /**\n-    * Get the transform that describes the translation and rotation of this\n-    * frame (F frame) relative to another frame (A frame).  This method returns\n-    * the transform converting quantities expressed in F frame to quantities\n-    * expressed in the A frame. This is mathematically stated as,\n-    * vec_A = X_AF*vec_F ,\n-    * where X_AF is the transform returned by this method.\n-    *\n-    * @param state       The state applied to the model when determining the\n-    *                    transform.\n-    * @param otherFrame  a second frame\n-    * @return transform  The transform between this frame and otherFrame\n+    Find the transform that describes this frame (F) relative to another\n+    frame (A). It transforms quantities expressed in F to quantities expressed\n+    in A. This is mathematically stated as:\n+    This is mathematically stated as:","path":"OpenSim/Simulation/Model/Frame.h","position":142,"original_position":142,"commit_id":"642933d850bbc51ee6a64451327777d0df24a1ca","original_commit_id":"642933d850bbc51ee6a64451327777d0df24a1ca","user":{"login":"sherm1","id":4088016,"avatar_url":"https://avatars.githubusercontent.com/u/4088016?v=3","gravatar_id":"","url":"https://api.github.com/users/sherm1","html_url":"https://github.com/sherm1","followers_url":"https://api.github.com/users/sherm1/followers","following_url":"https://api.github.com/users/sherm1/following{/other_user}","gists_url":"https://api.github.com/users/sherm1/gists{/gist_id}","starred_url":"https://api.github.com/users/sherm1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sherm1/subscriptions","organizations_url":"https://api.github.com/users/sherm1/orgs","repos_url":"https://api.github.com/users/sherm1/repos","events_url":"https://api.github.com/users/sherm1/events{/privacy}","received_events_url":"https://api.github.com/users/sherm1/received_events","type":"User","site_admin":false},"body":"Repeated phrase \"This is mathematically stated as:\"","created_at":"2015-01-26T19:20:01Z","updated_at":"2015-01-26T19:20:01Z","html_url":"https://github.com/opensim-org/opensim-core/pull/325#discussion_r23556344","pull_request_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/325","_links":{"self":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/comments/23556344"},"html":{"href":"https://github.com/opensim-org/opensim-core/pull/325#discussion_r23556344"},"pull_request":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/325"}}},"pull_request":{"url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/325","id":27562689,"html_url":"https://github.com/opensim-org/opensim-core/pull/325","diff_url":"https://github.com/opensim-org/opensim-core/pull/325.diff","patch_url":"https://github.com/opensim-org/opensim-core/pull/325.patch","issue_url":"https://api.github.com/repos/opensim-org/opensim-core/issues/325","number":325,"state":"open","locked":false,"title":"Frames redefined #216 #217","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},"body":"Frame namings, design and implementation were revisited. Most significant changes are: 1) RigidFrame renamed to PhysicalFrame,; 2) no caching of intermediate frames from outboard most OffsetFrame (previously FixedFrame) to MobilizedBody, and 3) OffsetFrame is a Mixin class that any Frame type to be extended by an Offset and retain its type. This will avoid having to re-implement Offset for every Frame type, but more importantly it lets us treat OffsetFrame<PhysicalFrame> as a PhysicalFrame. ","created_at":"2015-01-17T21:40:27Z","updated_at":"2015-01-26T19:20:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a4d9ace8a6623455ae1a285d69a746c81f7f0a96","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/325/commits","review_comments_url":"https://api.github.com/repos/opensim-org/opensim-core/pulls/325/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/325/comments","statuses_url":"https://api.github.com/repos/opensim-org/opensim-core/statuses/642933d850bbc51ee6a64451327777d0df24a1ca","head":{"label":"opensim-org:FramesRedefined_#216_#217","ref":"FramesRedefined_#216_#217","sha":"642933d850bbc51ee6a64451327777d0df24a1ca","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 C++ libraries and comand-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}","created_at":"2014-06-12T16:57:56Z","updated_at":"2015-01-23T16:04:29Z","pushed_at":"2015-01-26T19:18:20Z","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":"opensim.stanford.edu","size":110253,"stargazers_count":7,"watchers_count":7,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":124,"forks":4,"open_issues":124,"watchers":7,"default_branch":"master"}},"base":{"label":"opensim-org:master","ref":"master","sha":"a7aa8291548df1bbcf9a9060a377ba1966f41e2e","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 C++ libraries and comand-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}","created_at":"2014-06-12T16:57:56Z","updated_at":"2015-01-23T16:04:29Z","pushed_at":"2015-01-26T19:18:20Z","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":"opensim.stanford.edu","size":110253,"stargazers_count":7,"watchers_count":7,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"open_issues_count":124,"forks":4,"open_issues":124,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/325"},"html":{"href":"https://github.com/opensim-org/opensim-core/pull/325"},"issue":{"href":"https://api.github.com/repos/opensim-org/opensim-core/issues/325"},"comments":{"href":"https://api.github.com/repos/opensim-org/opensim-core/issues/325/comments"},"review_comments":{"href":"https://api.github.com/repos/opensim-org/opensim-core/pulls/325/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/325/commits"},"statuses":{"href":"https://api.github.com/repos/opensim-org/opensim-core/statuses/642933d850bbc51ee6a64451327777d0df24a1ca"}}}}