{"action":"created","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3188","repository_url":"https://api.github.com/repos/RobotLocomotion/drake","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3188/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3188/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3188/events","html_url":"https://github.com/RobotLocomotion/drake/pull/3188","id":171980226,"number":3188,"title":"Separate DiagramBuilder from Diagram.","user":{"login":"david-german-tri","id":17437069,"avatar_url":"https://avatars.githubusercontent.com/u/17437069?v=3","gravatar_id":"","url":"https://api.github.com/users/david-german-tri","html_url":"https://github.com/david-german-tri","followers_url":"https://api.github.com/users/david-german-tri/followers","following_url":"https://api.github.com/users/david-german-tri/following{/other_user}","gists_url":"https://api.github.com/users/david-german-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/david-german-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-german-tri/subscriptions","organizations_url":"https://api.github.com/users/david-german-tri/orgs","repos_url":"https://api.github.com/users/david-german-tri/repos","events_url":"https://api.github.com/users/david-german-tri/events{/privacy}","received_events_url":"https://api.github.com/users/david-german-tri/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"bradking","id":87268,"avatar_url":"https://avatars.githubusercontent.com/u/87268?v=3","gravatar_id":"","url":"https://api.github.com/users/bradking","html_url":"https://github.com/bradking","followers_url":"https://api.github.com/users/bradking/followers","following_url":"https://api.github.com/users/bradking/following{/other_user}","gists_url":"https://api.github.com/users/bradking/gists{/gist_id}","starred_url":"https://api.github.com/users/bradking/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bradking/subscriptions","organizations_url":"https://api.github.com/users/bradking/orgs","repos_url":"https://api.github.com/users/bradking/repos","events_url":"https://api.github.com/users/bradking/events{/privacy}","received_events_url":"https://api.github.com/users/bradking/received_events","type":"User","site_admin":false},"assignees":[{"login":"bradking","id":87268,"avatar_url":"https://avatars.githubusercontent.com/u/87268?v=3","gravatar_id":"","url":"https://api.github.com/users/bradking","html_url":"https://github.com/bradking","followers_url":"https://api.github.com/users/bradking/followers","following_url":"https://api.github.com/users/bradking/following{/other_user}","gists_url":"https://api.github.com/users/bradking/gists{/gist_id}","starred_url":"https://api.github.com/users/bradking/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bradking/subscriptions","organizations_url":"https://api.github.com/users/bradking/orgs","repos_url":"https://api.github.com/users/bradking/repos","events_url":"https://api.github.com/users/bradking/events{/privacy}","received_events_url":"https://api.github.com/users/bradking/received_events","type":"User","site_admin":false},{"login":"jwnimmer-tri","id":17596505,"avatar_url":"https://avatars.githubusercontent.com/u/17596505?v=3","gravatar_id":"","url":"https://api.github.com/users/jwnimmer-tri","html_url":"https://github.com/jwnimmer-tri","followers_url":"https://api.github.com/users/jwnimmer-tri/followers","following_url":"https://api.github.com/users/jwnimmer-tri/following{/other_user}","gists_url":"https://api.github.com/users/jwnimmer-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/jwnimmer-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jwnimmer-tri/subscriptions","organizations_url":"https://api.github.com/users/jwnimmer-tri/orgs","repos_url":"https://api.github.com/users/jwnimmer-tri/repos","events_url":"https://api.github.com/users/jwnimmer-tri/events{/privacy}","received_events_url":"https://api.github.com/users/jwnimmer-tri/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2016-08-18T19:24:09Z","updated_at":"2016-08-18T20:16:46Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RobotLocomotion/drake/pulls/3188","html_url":"https://github.com/RobotLocomotion/drake/pull/3188","diff_url":"https://github.com/RobotLocomotion/drake/pull/3188.diff","patch_url":"https://github.com/RobotLocomotion/drake/pull/3188.patch"},"body":"Update some legacy methods in DiagramBuilder to use SystemPortDescriptor.\r\n\r\nFixes #3068.\r\n\r\n@bradking for feature review, @jwnimmer-tri for platform review.\r\n\r\n<!-- Reviewable:start -->\r\n---\r\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/robotlocomotion/drake/3188)\r\n<!-- Reviewable:end -->\r\n"},"comment":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/comments/240843180","html_url":"https://github.com/RobotLocomotion/drake/pull/3188#issuecomment-240843180","issue_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/3188","id":240843180,"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},"created_at":"2016-08-18T20:16:46Z","updated_at":"2016-08-18T20:16:46Z","body":":+1: this seems cleaner. BTW reminder -- there is still an ownership issue to address (discussed elsewhere but I don't think there is a separate issue filed). In System 1 users can (and do) write methods like CreatePriusSystem() that return a shared_ptr to a System object that can be arbitrarily complex internally but owns everything it contains. That can be \"cascaded\" or whatever to make fancier Systems. We should have equivalent capability (with unique_ptr rather than shared_ptr). Currently there has to be some other object that owns the sub-systems in a Diagram. <img class=\"emoji\" title=\":lgtm:\" alt=\":lgtm:\" align=\"absmiddle\" src=\"https://reviewable.io/lgtm.png\" height=\"20\" width=\"61\"/>\n\n---\n\nReviewed 6 of 6 files at r1.\nReview status: 4 of 7 files reviewed at latest revision, 2 unresolved discussions.\n\n---\n\n*[drake/systems/framework/diagram.h, line 48 \\[r1\\]](https://reviewable.io:443/reviews/robotlocomotion/drake/3188#-KPUDUZdp5s-okJI3t6J:-KPUDUZdp5s-okJI3t6K:b-nd365t) ([raw file](https://github.com/robotlocomotion/drake/blob/57ee773caa8a753a6356b4849716a8488f00f8f6/drake/systems/framework/diagram.h#L48)):*\n> ```objc\n> \n> /// Diagram is a System composed of one or more constituent Systems, arranged\n> /// in a directed graph where the vertices are the constituent Systems\n> ```\n\nBTW with multiple input and output ports I believe there are now multiple directed graphs formed within a system diagram.\n\n---\n\n*[drake/systems/framework/test/diagram_test.cc, line 33 \\[r1\\]](https://reviewable.io:443/reviews/robotlocomotion/drake/3188#-KPUEjQ1QBg-JQkwLne6:-KPUEjQ1QBg-JQkwLne7:bmugehw) ([raw file](https://github.com/robotlocomotion/drake/blob/57ee773caa8a753a6356b4849716a8488f00f8f6/drake/systems/framework/test/diagram_test.cc#L33)):*\n> ```cpp\n>     builder.Connect(adder0_->get_output_port(0), adder1_->get_input_port(0));\n>     builder.Connect(adder0_->get_output_port(0), adder2_->get_input_port(0));\n>     builder.Connect(adder1_->get_output_port(0), adder2_->get_input_port(1));\n> ```\n\nBTW nice!\n\n---\n\n\n*Comments from [Reviewable](https://reviewable.io:443/reviews/robotlocomotion/drake/3188#-:-KPUGCTpGDE-0kg0gP44:bvwdwg2)*\n<!-- Sent from Reviewable.io -->\n"}}
{"actor":{"display_login":"sherm1"}}