{"action":"opened","issue":{"url":"https://api.github.com/repos/dartsim/dart/issues/664","repository_url":"https://api.github.com/repos/dartsim/dart","labels_url":"https://api.github.com/repos/dartsim/dart/issues/664/labels{/name}","comments_url":"https://api.github.com/repos/dartsim/dart/issues/664/comments","events_url":"https://api.github.com/repos/dartsim/dart/issues/664/events","html_url":"https://github.com/dartsim/dart/issues/664","id":148111120,"number":664,"title":"Automatically updating CollisionGroups when ShapeNodes are added/removed","user":{"login":"mxgrey","id":1307217,"avatar_url":"https://avatars.githubusercontent.com/u/1307217?v=3","gravatar_id":"","url":"https://api.github.com/users/mxgrey","html_url":"https://github.com/mxgrey","followers_url":"https://api.github.com/users/mxgrey/followers","following_url":"https://api.github.com/users/mxgrey/following{/other_user}","gists_url":"https://api.github.com/users/mxgrey/gists{/gist_id}","starred_url":"https://api.github.com/users/mxgrey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mxgrey/subscriptions","organizations_url":"https://api.github.com/users/mxgrey/orgs","repos_url":"https://api.github.com/users/mxgrey/repos","events_url":"https://api.github.com/users/mxgrey/events{/privacy}","received_events_url":"https://api.github.com/users/mxgrey/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-04-13T16:15:48Z","updated_at":"2016-04-13T16:15:48Z","closed_at":null,"body":"1. Currently a ``CollisionGroup`` will only pay attention to the ``ShapeNode``s on a ``BodyNode`` or ``Skeleton`` that are present at the moment that they are handed over. It would be good if they could update automatically whenever the ``ShapeNode``s are altered in some way. We could possibly do this with a wrapper class or build the functionality into ``CollisionGroup`` itself.\r\n\r\n2. ``CollisionGroup`` currently does not know when a ``ShapeFrame`` it refers to gets destroyed. This can leave the ``CollisionGroup`` in an undefined state and lead to undesirable behavior."}}