{"action":"created","comment":{"url":"https://api.github.com/repos/kduske/TrenchBroom/pulls/comments/208031070","pull_request_review_id":143762654,"id":208031070,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwODAzMTA3MA==","diff_hunk":"@@ -150,30 +150,31 @@ namespace TrenchBroom {\n         }\n \n         void Entity::doChildWasAdded(Node* node) {\n-            nodeBoundsDidChange();\n+            nodeBoundsDidChange(bounds());\n         }\n         \n         void Entity::doChildWasRemoved(Node* node) {\n-            nodeBoundsDidChange();\n+            nodeBoundsDidChange(bounds());\n         }\n \n-        void Entity::doNodeBoundsDidChange() {\n+        void Entity::doNodeBoundsDidChange(const BBox3& oldBounds) {\n             invalidateBounds();\n         }\n         \n-        void Entity::doChildBoundsDidChange(Node* node) {\n-            nodeBoundsDidChange();\n+        void Entity::doChildBoundsDidChange(Node* node, const BBox3& oldBounds) {\n+            const BBox3& myBounds = bounds();\n+            if (!myBounds.encloses(oldBounds) && !myBounds.encloses(node->bounds())) {\n+                // Our bounds will change only if the child's bounds potentially contributed to our own bounds.\n+                nodeBoundsDidChange(myBounds);\n+            }\n         }\n \n         bool Entity::doSelectable() const {\n             return !hasChildren();\n         }\n \n         void Entity::doPick(const Ray3& ray, PickResult& pickResult) const {\n-            if (hasChildren()) {\n-                for (const Node* child : Node::children())\n-                    child->pick(ray, pickResult);\n-            } else {\n+            if (!hasChildren()) {","path":"common/src/Model/Entity.cpp","position":69,"original_position":69,"commit_id":"7f49038a447f181263f5a016afa05d6e4d3172cb","original_commit_id":"7f49038a447f181263f5a016afa05d6e4d3172cb","user":{"login":"kduske","id":186061,"node_id":"MDQ6VXNlcjE4NjA2MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186061?v=4","gravatar_id":"","url":"https://api.github.com/users/kduske","html_url":"https://github.com/kduske","followers_url":"https://api.github.com/users/kduske/followers","following_url":"https://api.github.com/users/kduske/following{/other_user}","gists_url":"https://api.github.com/users/kduske/gists{/gist_id}","starred_url":"https://api.github.com/users/kduske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kduske/subscriptions","organizations_url":"https://api.github.com/users/kduske/orgs","repos_url":"https://api.github.com/users/kduske/repos","events_url":"https://api.github.com/users/kduske/events{/privacy}","received_events_url":"https://api.github.com/users/kduske/received_events","type":"User","site_admin":false},"body":"Because the children are now all added to the node tree, which they were not before.","created_at":"2018-08-06T21:13:05Z","updated_at":"2018-08-06T21:13:05Z","html_url":"https://github.com/kduske/TrenchBroom/pull/2209#discussion_r208031070","pull_request_url":"https://api.github.com/repos/kduske/TrenchBroom/pulls/2209","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/kduske/TrenchBroom/pulls/comments/208031070"},"html":{"href":"https://github.com/kduske/TrenchBroom/pull/2209#discussion_r208031070"},"pull_request":{"href":"https://api.github.com/repos/kduske/TrenchBroom/pulls/2209"}},"in_reply_to_id":207980594},"pull_request":{"url":"https://api.github.com/repos/kduske/TrenchBroom/pulls/2209","id":206234462,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2MjM0NDYy","html_url":"https://github.com/kduske/TrenchBroom/pull/2209","diff_url":"https://github.com/kduske/TrenchBroom/pull/2209.diff","patch_url":"https://github.com/kduske/TrenchBroom/pull/2209.patch","issue_url":"https://api.github.com/repos/kduske/TrenchBroom/issues/2209","number":2209,"state":"open","locked":false,"title":"1404: Replace Octree with AABB tree","user":{"login":"kduske","id":186061,"node_id":"MDQ6VXNlcjE4NjA2MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186061?v=4","gravatar_id":"","url":"https://api.github.com/users/kduske","html_url":"https://github.com/kduske","followers_url":"https://api.github.com/users/kduske/followers","following_url":"https://api.github.com/users/kduske/following{/other_user}","gists_url":"https://api.github.com/users/kduske/gists{/gist_id}","starred_url":"https://api.github.com/users/kduske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kduske/subscriptions","organizations_url":"https://api.github.com/users/kduske/orgs","repos_url":"https://api.github.com/users/kduske/repos","events_url":"https://api.github.com/users/kduske/events{/privacy}","received_events_url":"https://api.github.com/users/kduske/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-08-05T11:36:47Z","updated_at":"2018-08-06T21:13:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7d444da2191a566145ae6c622db32fe89536700f","assignee":{"login":"kduske","id":186061,"node_id":"MDQ6VXNlcjE4NjA2MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186061?v=4","gravatar_id":"","url":"https://api.github.com/users/kduske","html_url":"https://github.com/kduske","followers_url":"https://api.github.com/users/kduske/followers","following_url":"https://api.github.com/users/kduske/following{/other_user}","gists_url":"https://api.github.com/users/kduske/gists{/gist_id}","starred_url":"https://api.github.com/users/kduske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kduske/subscriptions","organizations_url":"https://api.github.com/users/kduske/orgs","repos_url":"https://api.github.com/users/kduske/repos","events_url":"https://api.github.com/users/kduske/events{/privacy}","received_events_url":"https://api.github.com/users/kduske/received_events","type":"User","site_admin":false},"assignees":[{"login":"kduske","id":186061,"node_id":"MDQ6VXNlcjE4NjA2MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186061?v=4","gravatar_id":"","url":"https://api.github.com/users/kduske","html_url":"https://github.com/kduske","followers_url":"https://api.github.com/users/kduske/followers","following_url":"https://api.github.com/users/kduske/following{/other_user}","gists_url":"https://api.github.com/users/kduske/gists{/gist_id}","starred_url":"https://api.github.com/users/kduske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kduske/subscriptions","organizations_url":"https://api.github.com/users/kduske/orgs","repos_url":"https://api.github.com/users/kduske/repos","events_url":"https://api.github.com/users/kduske/events{/privacy}","received_events_url":"https://api.github.com/users/kduske/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":507324566,"node_id":"MDU6TGFiZWw1MDczMjQ1NjY=","url":"https://api.github.com/repos/kduske/TrenchBroom/labels/Status:In%20Progress","name":"Status:In Progress","color":"bfd4f2","default":false}],"milestone":{"url":"https://api.github.com/repos/kduske/TrenchBroom/milestones/17","html_url":"https://github.com/kduske/TrenchBroom/milestone/17","labels_url":"https://api.github.com/repos/kduske/TrenchBroom/milestones/17/labels","id":734710,"node_id":"MDk6TWlsZXN0b25lNzM0NzEw","number":17,"title":"2.1.0","description":"","creator":{"login":"kduske","id":186061,"node_id":"MDQ6VXNlcjE4NjA2MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186061?v=4","gravatar_id":"","url":"https://api.github.com/users/kduske","html_url":"https://github.com/kduske","followers_url":"https://api.github.com/users/kduske/followers","following_url":"https://api.github.com/users/kduske/following{/other_user}","gists_url":"https://api.github.com/users/kduske/gists{/gist_id}","starred_url":"https://api.github.com/users/kduske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kduske/subscriptions","organizations_url":"https://api.github.com/users/kduske/orgs","repos_url":"https://api.github.com/users/kduske/repos","events_url":"https://api.github.com/users/kduske/events{/privacy}","received_events_url":"https://api.github.com/users/kduske/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":40,"state":"open","created_at":"2014-07-28T20:52:28Z","updated_at":"2018-08-06T02:37:53Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/kduske/TrenchBroom/pulls/2209/commits","review_comments_url":"https://api.github.com/repos/kduske/TrenchBroom/pulls/2209/comments","review_comment_url":"https://api.github.com/repos/kduske/TrenchBroom/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kduske/TrenchBroom/issues/2209/comments","statuses_url":"https://api.github.com/repos/kduske/TrenchBroom/statuses/7f49038a447f181263f5a016afa05d6e4d3172cb","head":{"label":"kduske:feature/1404","ref":"feature/1404","sha":"7f49038a447f181263f5a016afa05d6e4d3172cb","user":{"login":"kduske","id":186061,"node_id":"MDQ6VXNlcjE4NjA2MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186061?v=4","gravatar_id":"","url":"https://api.github.com/users/kduske","html_url":"https://github.com/kduske","followers_url":"https://api.github.com/users/kduske/followers","following_url":"https://api.github.com/users/kduske/following{/other_user}","gists_url":"https://api.github.com/users/kduske/gists{/gist_id}","starred_url":"https://api.github.com/users/kduske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kduske/subscriptions","organizations_url":"https://api.github.com/users/kduske/orgs","repos_url":"https://api.github.com/users/kduske/repos","events_url":"https://api.github.com/users/kduske/events{/privacy}","received_events_url":"https://api.github.com/users/kduske/received_events","type":"User","site_admin":false},"repo":{"id":4003232,"node_id":"MDEwOlJlcG9zaXRvcnk0MDAzMjMy","name":"TrenchBroom","full_name":"kduske/TrenchBroom","owner":{"login":"kduske","id":186061,"node_id":"MDQ6VXNlcjE4NjA2MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186061?v=4","gravatar_id":"","url":"https://api.github.com/users/kduske","html_url":"https://github.com/kduske","followers_url":"https://api.github.com/users/kduske/followers","following_url":"https://api.github.com/users/kduske/following{/other_user}","gists_url":"https://api.github.com/users/kduske/gists{/gist_id}","starred_url":"https://api.github.com/users/kduske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kduske/subscriptions","organizations_url":"https://api.github.com/users/kduske/orgs","repos_url":"https://api.github.com/users/kduske/repos","events_url":"https://api.github.com/users/kduske/events{/privacy}","received_events_url":"https://api.github.com/users/kduske/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kduske/TrenchBroom","description":"Cross-Platform Level Editor","fork":false,"url":"https://api.github.com/repos/kduske/TrenchBroom","forks_url":"https://api.github.com/repos/kduske/TrenchBroom/forks","keys_url":"https://api.github.com/repos/kduske/TrenchBroom/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kduske/TrenchBroom/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kduske/TrenchBroom/teams","hooks_url":"https://api.github.com/repos/kduske/TrenchBroom/hooks","issue_events_url":"https://api.github.com/repos/kduske/TrenchBroom/issues/events{/number}","events_url":"https://api.github.com/repos/kduske/TrenchBroom/events","assignees_url":"https://api.github.com/repos/kduske/TrenchBroom/assignees{/user}","branches_url":"https://api.github.com/repos/kduske/TrenchBroom/branches{/branch}","tags_url":"https://api.github.com/repos/kduske/TrenchBroom/tags","blobs_url":"https://api.github.com/repos/kduske/TrenchBroom/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kduske/TrenchBroom/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kduske/TrenchBroom/git/refs{/sha}","trees_url":"https://api.github.com/repos/kduske/TrenchBroom/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kduske/TrenchBroom/statuses/{sha}","languages_url":"https://api.github.com/repos/kduske/TrenchBroom/languages","stargazers_url":"https://api.github.com/repos/kduske/TrenchBroom/stargazers","contributors_url":"https://api.github.com/repos/kduske/TrenchBroom/contributors","subscribers_url":"https://api.github.com/repos/kduske/TrenchBroom/subscribers","subscription_url":"https://api.github.com/repos/kduske/TrenchBroom/subscription","commits_url":"https://api.github.com/repos/kduske/TrenchBroom/commits{/sha}","git_commits_url":"https://api.github.com/repos/kduske/TrenchBroom/git/commits{/sha}","comments_url":"https://api.github.com/repos/kduske/TrenchBroom/comments{/number}","issue_comment_url":"https://api.github.com/repos/kduske/TrenchBroom/issues/comments{/number}","contents_url":"https://api.github.com/repos/kduske/TrenchBroom/contents/{+path}","compare_url":"https://api.github.com/repos/kduske/TrenchBroom/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kduske/TrenchBroom/merges","archive_url":"https://api.github.com/repos/kduske/TrenchBroom/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kduske/TrenchBroom/downloads","issues_url":"https://api.github.com/repos/kduske/TrenchBroom/issues{/number}","pulls_url":"https://api.github.com/repos/kduske/TrenchBroom/pulls{/number}","milestones_url":"https://api.github.com/repos/kduske/TrenchBroom/milestones{/number}","notifications_url":"https://api.github.com/repos/kduske/TrenchBroom/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kduske/TrenchBroom/labels{/name}","releases_url":"https://api.github.com/repos/kduske/TrenchBroom/releases{/id}","deployments_url":"https://api.github.com/repos/kduske/TrenchBroom/deployments","created_at":"2012-04-12T09:39:51Z","updated_at":"2018-08-06T05:22:08Z","pushed_at":"2018-08-06T05:22:06Z","git_url":"git://github.com/kduske/TrenchBroom.git","ssh_url":"git@github.com:kduske/TrenchBroom.git","clone_url":"https://github.com/kduske/TrenchBroom.git","svn_url":"https://github.com/kduske/TrenchBroom","homepage":"kristianduske.com/trenchbroom","size":113174,"stargazers_count":358,"watchers_count":358,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":44,"mirror_url":null,"archived":false,"open_issues_count":179,"license":null,"forks":44,"open_issues":179,"watchers":358,"default_branch":"master"}},"base":{"label":"kduske:master","ref":"master","sha":"c8620780d82515f1d5220629c86f743d77fbf303","user":{"login":"kduske","id":186061,"node_id":"MDQ6VXNlcjE4NjA2MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186061?v=4","gravatar_id":"","url":"https://api.github.com/users/kduske","html_url":"https://github.com/kduske","followers_url":"https://api.github.com/users/kduske/followers","following_url":"https://api.github.com/users/kduske/following{/other_user}","gists_url":"https://api.github.com/users/kduske/gists{/gist_id}","starred_url":"https://api.github.com/users/kduske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kduske/subscriptions","organizations_url":"https://api.github.com/users/kduske/orgs","repos_url":"https://api.github.com/users/kduske/repos","events_url":"https://api.github.com/users/kduske/events{/privacy}","received_events_url":"https://api.github.com/users/kduske/received_events","type":"User","site_admin":false},"repo":{"id":4003232,"node_id":"MDEwOlJlcG9zaXRvcnk0MDAzMjMy","name":"TrenchBroom","full_name":"kduske/TrenchBroom","owner":{"login":"kduske","id":186061,"node_id":"MDQ6VXNlcjE4NjA2MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/186061?v=4","gravatar_id":"","url":"https://api.github.com/users/kduske","html_url":"https://github.com/kduske","followers_url":"https://api.github.com/users/kduske/followers","following_url":"https://api.github.com/users/kduske/following{/other_user}","gists_url":"https://api.github.com/users/kduske/gists{/gist_id}","starred_url":"https://api.github.com/users/kduske/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kduske/subscriptions","organizations_url":"https://api.github.com/users/kduske/orgs","repos_url":"https://api.github.com/users/kduske/repos","events_url":"https://api.github.com/users/kduske/events{/privacy}","received_events_url":"https://api.github.com/users/kduske/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kduske/TrenchBroom","description":"Cross-Platform Level Editor","fork":false,"url":"https://api.github.com/repos/kduske/TrenchBroom","forks_url":"https://api.github.com/repos/kduske/TrenchBroom/forks","keys_url":"https://api.github.com/repos/kduske/TrenchBroom/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kduske/TrenchBroom/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kduske/TrenchBroom/teams","hooks_url":"https://api.github.com/repos/kduske/TrenchBroom/hooks","issue_events_url":"https://api.github.com/repos/kduske/TrenchBroom/issues/events{/number}","events_url":"https://api.github.com/repos/kduske/TrenchBroom/events","assignees_url":"https://api.github.com/repos/kduske/TrenchBroom/assignees{/user}","branches_url":"https://api.github.com/repos/kduske/TrenchBroom/branches{/branch}","tags_url":"https://api.github.com/repos/kduske/TrenchBroom/tags","blobs_url":"https://api.github.com/repos/kduske/TrenchBroom/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kduske/TrenchBroom/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kduske/TrenchBroom/git/refs{/sha}","trees_url":"https://api.github.com/repos/kduske/TrenchBroom/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kduske/TrenchBroom/statuses/{sha}","languages_url":"https://api.github.com/repos/kduske/TrenchBroom/languages","stargazers_url":"https://api.github.com/repos/kduske/TrenchBroom/stargazers","contributors_url":"https://api.github.com/repos/kduske/TrenchBroom/contributors","subscribers_url":"https://api.github.com/repos/kduske/TrenchBroom/subscribers","subscription_url":"https://api.github.com/repos/kduske/TrenchBroom/subscription","commits_url":"https://api.github.com/repos/kduske/TrenchBroom/commits{/sha}","git_commits_url":"https://api.github.com/repos/kduske/TrenchBroom/git/commits{/sha}","comments_url":"https://api.github.com/repos/kduske/TrenchBroom/comments{/number}","issue_comment_url":"https://api.github.com/repos/kduske/TrenchBroom/issues/comments{/number}","contents_url":"https://api.github.com/repos/kduske/TrenchBroom/contents/{+path}","compare_url":"https://api.github.com/repos/kduske/TrenchBroom/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kduske/TrenchBroom/merges","archive_url":"https://api.github.com/repos/kduske/TrenchBroom/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kduske/TrenchBroom/downloads","issues_url":"https://api.github.com/repos/kduske/TrenchBroom/issues{/number}","pulls_url":"https://api.github.com/repos/kduske/TrenchBroom/pulls{/number}","milestones_url":"https://api.github.com/repos/kduske/TrenchBroom/milestones{/number}","notifications_url":"https://api.github.com/repos/kduske/TrenchBroom/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kduske/TrenchBroom/labels{/name}","releases_url":"https://api.github.com/repos/kduske/TrenchBroom/releases{/id}","deployments_url":"https://api.github.com/repos/kduske/TrenchBroom/deployments","created_at":"2012-04-12T09:39:51Z","updated_at":"2018-08-06T05:22:08Z","pushed_at":"2018-08-06T05:22:06Z","git_url":"git://github.com/kduske/TrenchBroom.git","ssh_url":"git@github.com:kduske/TrenchBroom.git","clone_url":"https://github.com/kduske/TrenchBroom.git","svn_url":"https://github.com/kduske/TrenchBroom","homepage":"kristianduske.com/trenchbroom","size":113174,"stargazers_count":358,"watchers_count":358,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":44,"mirror_url":null,"archived":false,"open_issues_count":179,"license":null,"forks":44,"open_issues":179,"watchers":358,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kduske/TrenchBroom/pulls/2209"},"html":{"href":"https://github.com/kduske/TrenchBroom/pull/2209"},"issue":{"href":"https://api.github.com/repos/kduske/TrenchBroom/issues/2209"},"comments":{"href":"https://api.github.com/repos/kduske/TrenchBroom/issues/2209/comments"},"review_comments":{"href":"https://api.github.com/repos/kduske/TrenchBroom/pulls/2209/comments"},"review_comment":{"href":"https://api.github.com/repos/kduske/TrenchBroom/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kduske/TrenchBroom/pulls/2209/commits"},"statuses":{"href":"https://api.github.com/repos/kduske/TrenchBroom/statuses/7f49038a447f181263f5a016afa05d6e4d3172cb"}},"author_association":"OWNER"}}
{"actor":{"display_login":"kduske"}}