{"action":"created","comment":{"url":"https://api.github.com/repos/ngageoint/hootenanny/pulls/comments/93309916","pull_request_review_id":13835055,"id":93309916,"diff_hunk":"@@ -0,0 +1,172 @@\n+/*\n+ * This file is part of Hootenanny.\n+ *\n+ * Hootenanny is free software: you can redistribute it and/or modify\n+ * it under the terms of the GNU General Public License as published by\n+ * the Free Software Foundation, either version 3 of the License, or\n+ * (at your option) any later version.\n+ *\n+ * This program is distributed in the hope that it will be useful,\n+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+ * GNU General Public License for more details.\n+ *\n+ * You should have received a copy of the GNU General Public License\n+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n+ *\n+ * --------------------------------------------------------------------\n+ *\n+ * The following copyright notices are generated automatically. If you\n+ * have a new notice to add, please use the format:\n+ * \" * @copyright Copyright ...\"\n+ * This will properly maintain the copyright information. DigitalGlobe\n+ * copyrights will be updated automatically.\n+ *\n+ * @copyright Copyright (C) 2016 DigitalGlobe (http://www.digitalglobe.com/)\n+ */\n+#ifndef FRECHETDISTANCE_H\n+#define FRECHETDISTANCE_H\n+\n+//  Boost\n+#include <boost/multi_array.hpp>\n+\n+// Hoot\n+#include <hoot/core/OsmMap.h>\n+#include <hoot/core/Units.h>\n+#include <hoot/core/algorithms/linearreference/WayLocation.h>\n+#include <hoot/core/elements/Way.h>\n+\n+// TGS\n+#include <tgs/SharedPtr.h>\n+\n+namespace hoot\n+{\n+\n+typedef boost::multi_array<Meters, 2> frechet_matrix;\n+typedef frechet_matrix::index frechet_index;\n+typedef std::pair<int, int> vertex_match;\n+typedef std::vector<vertex_match> subline_entry;\n+typedef std::pair<Meters, subline_entry> frechet_subline;\n+\n+typedef shared_ptr<LineString> LineStringPtr;\n+\n+/** Forward declaration for friend class so that the test class can access protected members\n+ */\n+class FrechetDistanceTest;","path":"hoot-rnd/src/main/cpp/hoot/rnd/conflate/frechet/FrechetDistance.h","position":55,"original_position":55,"commit_id":"0e1de8b2dfe70c755acc59e9a1753c71f4c33c0d","original_commit_id":"0e1de8b2dfe70c755acc59e9a1753c71f4c33c0d","user":{"login":"bmarchant","id":13385275,"avatar_url":"https://avatars.githubusercontent.com/u/13385275?v=3","gravatar_id":"","url":"https://api.github.com/users/bmarchant","html_url":"https://github.com/bmarchant","followers_url":"https://api.github.com/users/bmarchant/followers","following_url":"https://api.github.com/users/bmarchant/following{/other_user}","gists_url":"https://api.github.com/users/bmarchant/gists{/gist_id}","starred_url":"https://api.github.com/users/bmarchant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmarchant/subscriptions","organizations_url":"https://api.github.com/users/bmarchant/orgs","repos_url":"https://api.github.com/users/bmarchant/repos","events_url":"https://api.github.com/users/bmarchant/events{/privacy}","received_events_url":"https://api.github.com/users/bmarchant/received_events","type":"User","site_admin":false},"body":"You are correct.  I thought I needed a forward declaration of the friend class but I removed it and it compiles fine.","created_at":"2016-12-20T19:41:47Z","updated_at":"2016-12-20T19:41:47Z","html_url":"https://github.com/ngageoint/hootenanny/pull/1255#discussion_r93309916","pull_request_url":"https://api.github.com/repos/ngageoint/hootenanny/pulls/1255","_links":{"self":{"href":"https://api.github.com/repos/ngageoint/hootenanny/pulls/comments/93309916"},"html":{"href":"https://github.com/ngageoint/hootenanny/pull/1255#discussion_r93309916"},"pull_request":{"href":"https://api.github.com/repos/ngageoint/hootenanny/pulls/1255"}}},"pull_request":{"url":"https://api.github.com/repos/ngageoint/hootenanny/pulls/1255","id":97151392,"html_url":"https://github.com/ngageoint/hootenanny/pull/1255","diff_url":"https://github.com/ngageoint/hootenanny/pull/1255.diff","patch_url":"https://github.com/ngageoint/hootenanny/pull/1255.patch","issue_url":"https://api.github.com/repos/ngageoint/hootenanny/issues/1255","number":1255,"state":"open","locked":false,"title":"Frechet Distance first stab","user":{"login":"bmarchant","id":13385275,"avatar_url":"https://avatars.githubusercontent.com/u/13385275?v=3","gravatar_id":"","url":"https://api.github.com/users/bmarchant","html_url":"https://github.com/bmarchant","followers_url":"https://api.github.com/users/bmarchant/followers","following_url":"https://api.github.com/users/bmarchant/following{/other_user}","gists_url":"https://api.github.com/users/bmarchant/gists{/gist_id}","starred_url":"https://api.github.com/users/bmarchant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmarchant/subscriptions","organizations_url":"https://api.github.com/users/bmarchant/orgs","repos_url":"https://api.github.com/users/bmarchant/repos","events_url":"https://api.github.com/users/bmarchant/events{/privacy}","received_events_url":"https://api.github.com/users/bmarchant/received_events","type":"User","site_admin":false},"body":"Refs #426 \r\nPutting Frechet Distance calculation into hoot as an option and creating a slow test using DCTiger data.  In order to \"enable\" Frechet use the following command:\r\n`hoot conflate -D \"way.subline.matcher=hoot::FrechetSublineMatcher\" <input1.osm> <input2.osm> <output.osm>`\r\nThis will allow for an advanced option to be put into the UI to get the feature in front of the customer.  Next up, services and UI integration of the command line option.","created_at":"2016-12-08T16:11:14Z","updated_at":"2016-12-20T19:41:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"936ade29041a09fb591735bff9a71062bec26ca7","assignee":{"login":"bwitham","id":303724,"avatar_url":"https://avatars.githubusercontent.com/u/303724?v=3","gravatar_id":"","url":"https://api.github.com/users/bwitham","html_url":"https://github.com/bwitham","followers_url":"https://api.github.com/users/bwitham/followers","following_url":"https://api.github.com/users/bwitham/following{/other_user}","gists_url":"https://api.github.com/users/bwitham/gists{/gist_id}","starred_url":"https://api.github.com/users/bwitham/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bwitham/subscriptions","organizations_url":"https://api.github.com/users/bwitham/orgs","repos_url":"https://api.github.com/users/bwitham/repos","events_url":"https://api.github.com/users/bwitham/events{/privacy}","received_events_url":"https://api.github.com/users/bwitham/received_events","type":"User","site_admin":false},"assignees":[{"login":"bwitham","id":303724,"avatar_url":"https://avatars.githubusercontent.com/u/303724?v=3","gravatar_id":"","url":"https://api.github.com/users/bwitham","html_url":"https://github.com/bwitham","followers_url":"https://api.github.com/users/bwitham/followers","following_url":"https://api.github.com/users/bwitham/following{/other_user}","gists_url":"https://api.github.com/users/bwitham/gists{/gist_id}","starred_url":"https://api.github.com/users/bwitham/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bwitham/subscriptions","organizations_url":"https://api.github.com/users/bwitham/orgs","repos_url":"https://api.github.com/users/bwitham/repos","events_url":"https://api.github.com/users/bwitham/events{/privacy}","received_events_url":"https://api.github.com/users/bwitham/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/ngageoint/hootenanny/milestones/29","html_url":"https://github.com/ngageoint/hootenanny/milestone/29","labels_url":"https://api.github.com/repos/ngageoint/hootenanny/milestones/29/labels","id":2119369,"number":29,"title":"Hootenanny 2017-01-04","description":"","creator":{"login":"sisskind","id":6191659,"avatar_url":"https://avatars.githubusercontent.com/u/6191659?v=3","gravatar_id":"","url":"https://api.github.com/users/sisskind","html_url":"https://github.com/sisskind","followers_url":"https://api.github.com/users/sisskind/followers","following_url":"https://api.github.com/users/sisskind/following{/other_user}","gists_url":"https://api.github.com/users/sisskind/gists{/gist_id}","starred_url":"https://api.github.com/users/sisskind/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sisskind/subscriptions","organizations_url":"https://api.github.com/users/sisskind/orgs","repos_url":"https://api.github.com/users/sisskind/repos","events_url":"https://api.github.com/users/sisskind/events{/privacy}","received_events_url":"https://api.github.com/users/sisskind/received_events","type":"User","site_admin":false},"open_issues":25,"closed_issues":6,"state":"open","created_at":"2016-11-07T15:55:50Z","updated_at":"2016-12-20T18:56:42Z","due_on":"2017-01-04T08:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/ngageoint/hootenanny/pulls/1255/commits","review_comments_url":"https://api.github.com/repos/ngageoint/hootenanny/pulls/1255/comments","review_comment_url":"https://api.github.com/repos/ngageoint/hootenanny/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ngageoint/hootenanny/issues/1255/comments","statuses_url":"https://api.github.com/repos/ngageoint/hootenanny/statuses/0e1de8b2dfe70c755acc59e9a1753c71f4c33c0d","head":{"label":"ngageoint:426_simple","ref":"426_simple","sha":"0e1de8b2dfe70c755acc59e9a1753c71f4c33c0d","user":{"login":"ngageoint","id":7175944,"avatar_url":"https://avatars.githubusercontent.com/u/7175944?v=3","gravatar_id":"","url":"https://api.github.com/users/ngageoint","html_url":"https://github.com/ngageoint","followers_url":"https://api.github.com/users/ngageoint/followers","following_url":"https://api.github.com/users/ngageoint/following{/other_user}","gists_url":"https://api.github.com/users/ngageoint/gists{/gist_id}","starred_url":"https://api.github.com/users/ngageoint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngageoint/subscriptions","organizations_url":"https://api.github.com/users/ngageoint/orgs","repos_url":"https://api.github.com/users/ngageoint/repos","events_url":"https://api.github.com/users/ngageoint/events{/privacy}","received_events_url":"https://api.github.com/users/ngageoint/received_events","type":"Organization","site_admin":false},"repo":{"id":37372629,"name":"hootenanny","full_name":"ngageoint/hootenanny","owner":{"login":"ngageoint","id":7175944,"avatar_url":"https://avatars.githubusercontent.com/u/7175944?v=3","gravatar_id":"","url":"https://api.github.com/users/ngageoint","html_url":"https://github.com/ngageoint","followers_url":"https://api.github.com/users/ngageoint/followers","following_url":"https://api.github.com/users/ngageoint/following{/other_user}","gists_url":"https://api.github.com/users/ngageoint/gists{/gist_id}","starred_url":"https://api.github.com/users/ngageoint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngageoint/subscriptions","organizations_url":"https://api.github.com/users/ngageoint/orgs","repos_url":"https://api.github.com/users/ngageoint/repos","events_url":"https://api.github.com/users/ngageoint/events{/privacy}","received_events_url":"https://api.github.com/users/ngageoint/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ngageoint/hootenanny","description":"high-performance conflation software","fork":false,"url":"https://api.github.com/repos/ngageoint/hootenanny","forks_url":"https://api.github.com/repos/ngageoint/hootenanny/forks","keys_url":"https://api.github.com/repos/ngageoint/hootenanny/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ngageoint/hootenanny/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ngageoint/hootenanny/teams","hooks_url":"https://api.github.com/repos/ngageoint/hootenanny/hooks","issue_events_url":"https://api.github.com/repos/ngageoint/hootenanny/issues/events{/number}","events_url":"https://api.github.com/repos/ngageoint/hootenanny/events","assignees_url":"https://api.github.com/repos/ngageoint/hootenanny/assignees{/user}","branches_url":"https://api.github.com/repos/ngageoint/hootenanny/branches{/branch}","tags_url":"https://api.github.com/repos/ngageoint/hootenanny/tags","blobs_url":"https://api.github.com/repos/ngageoint/hootenanny/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ngageoint/hootenanny/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ngageoint/hootenanny/git/refs{/sha}","trees_url":"https://api.github.com/repos/ngageoint/hootenanny/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ngageoint/hootenanny/statuses/{sha}","languages_url":"https://api.github.com/repos/ngageoint/hootenanny/languages","stargazers_url":"https://api.github.com/repos/ngageoint/hootenanny/stargazers","contributors_url":"https://api.github.com/repos/ngageoint/hootenanny/contributors","subscribers_url":"https://api.github.com/repos/ngageoint/hootenanny/subscribers","subscription_url":"https://api.github.com/repos/ngageoint/hootenanny/subscription","commits_url":"https://api.github.com/repos/ngageoint/hootenanny/commits{/sha}","git_commits_url":"https://api.github.com/repos/ngageoint/hootenanny/git/commits{/sha}","comments_url":"https://api.github.com/repos/ngageoint/hootenanny/comments{/number}","issue_comment_url":"https://api.github.com/repos/ngageoint/hootenanny/issues/comments{/number}","contents_url":"https://api.github.com/repos/ngageoint/hootenanny/contents/{+path}","compare_url":"https://api.github.com/repos/ngageoint/hootenanny/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ngageoint/hootenanny/merges","archive_url":"https://api.github.com/repos/ngageoint/hootenanny/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ngageoint/hootenanny/downloads","issues_url":"https://api.github.com/repos/ngageoint/hootenanny/issues{/number}","pulls_url":"https://api.github.com/repos/ngageoint/hootenanny/pulls{/number}","milestones_url":"https://api.github.com/repos/ngageoint/hootenanny/milestones{/number}","notifications_url":"https://api.github.com/repos/ngageoint/hootenanny/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ngageoint/hootenanny/labels{/name}","releases_url":"https://api.github.com/repos/ngageoint/hootenanny/releases{/id}","deployments_url":"https://api.github.com/repos/ngageoint/hootenanny/deployments","created_at":"2015-06-13T13:33:38Z","updated_at":"2016-12-13T19:52:01Z","pushed_at":"2016-12-20T18:52:21Z","git_url":"git://github.com/ngageoint/hootenanny.git","ssh_url":"git@github.com:ngageoint/hootenanny.git","clone_url":"https://github.com/ngageoint/hootenanny.git","svn_url":"https://github.com/ngageoint/hootenanny","homepage":null,"size":160818,"stargazers_count":93,"watchers_count":93,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":35,"mirror_url":null,"open_issues_count":185,"forks":35,"open_issues":185,"watchers":93,"default_branch":"master"}},"base":{"label":"ngageoint:develop","ref":"develop","sha":"062f9dd4bd5b49f5a3ca64060c3bb1d31fc00ca0","user":{"login":"ngageoint","id":7175944,"avatar_url":"https://avatars.githubusercontent.com/u/7175944?v=3","gravatar_id":"","url":"https://api.github.com/users/ngageoint","html_url":"https://github.com/ngageoint","followers_url":"https://api.github.com/users/ngageoint/followers","following_url":"https://api.github.com/users/ngageoint/following{/other_user}","gists_url":"https://api.github.com/users/ngageoint/gists{/gist_id}","starred_url":"https://api.github.com/users/ngageoint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngageoint/subscriptions","organizations_url":"https://api.github.com/users/ngageoint/orgs","repos_url":"https://api.github.com/users/ngageoint/repos","events_url":"https://api.github.com/users/ngageoint/events{/privacy}","received_events_url":"https://api.github.com/users/ngageoint/received_events","type":"Organization","site_admin":false},"repo":{"id":37372629,"name":"hootenanny","full_name":"ngageoint/hootenanny","owner":{"login":"ngageoint","id":7175944,"avatar_url":"https://avatars.githubusercontent.com/u/7175944?v=3","gravatar_id":"","url":"https://api.github.com/users/ngageoint","html_url":"https://github.com/ngageoint","followers_url":"https://api.github.com/users/ngageoint/followers","following_url":"https://api.github.com/users/ngageoint/following{/other_user}","gists_url":"https://api.github.com/users/ngageoint/gists{/gist_id}","starred_url":"https://api.github.com/users/ngageoint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ngageoint/subscriptions","organizations_url":"https://api.github.com/users/ngageoint/orgs","repos_url":"https://api.github.com/users/ngageoint/repos","events_url":"https://api.github.com/users/ngageoint/events{/privacy}","received_events_url":"https://api.github.com/users/ngageoint/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ngageoint/hootenanny","description":"high-performance conflation software","fork":false,"url":"https://api.github.com/repos/ngageoint/hootenanny","forks_url":"https://api.github.com/repos/ngageoint/hootenanny/forks","keys_url":"https://api.github.com/repos/ngageoint/hootenanny/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ngageoint/hootenanny/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ngageoint/hootenanny/teams","hooks_url":"https://api.github.com/repos/ngageoint/hootenanny/hooks","issue_events_url":"https://api.github.com/repos/ngageoint/hootenanny/issues/events{/number}","events_url":"https://api.github.com/repos/ngageoint/hootenanny/events","assignees_url":"https://api.github.com/repos/ngageoint/hootenanny/assignees{/user}","branches_url":"https://api.github.com/repos/ngageoint/hootenanny/branches{/branch}","tags_url":"https://api.github.com/repos/ngageoint/hootenanny/tags","blobs_url":"https://api.github.com/repos/ngageoint/hootenanny/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ngageoint/hootenanny/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ngageoint/hootenanny/git/refs{/sha}","trees_url":"https://api.github.com/repos/ngageoint/hootenanny/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ngageoint/hootenanny/statuses/{sha}","languages_url":"https://api.github.com/repos/ngageoint/hootenanny/languages","stargazers_url":"https://api.github.com/repos/ngageoint/hootenanny/stargazers","contributors_url":"https://api.github.com/repos/ngageoint/hootenanny/contributors","subscribers_url":"https://api.github.com/repos/ngageoint/hootenanny/subscribers","subscription_url":"https://api.github.com/repos/ngageoint/hootenanny/subscription","commits_url":"https://api.github.com/repos/ngageoint/hootenanny/commits{/sha}","git_commits_url":"https://api.github.com/repos/ngageoint/hootenanny/git/commits{/sha}","comments_url":"https://api.github.com/repos/ngageoint/hootenanny/comments{/number}","issue_comment_url":"https://api.github.com/repos/ngageoint/hootenanny/issues/comments{/number}","contents_url":"https://api.github.com/repos/ngageoint/hootenanny/contents/{+path}","compare_url":"https://api.github.com/repos/ngageoint/hootenanny/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ngageoint/hootenanny/merges","archive_url":"https://api.github.com/repos/ngageoint/hootenanny/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ngageoint/hootenanny/downloads","issues_url":"https://api.github.com/repos/ngageoint/hootenanny/issues{/number}","pulls_url":"https://api.github.com/repos/ngageoint/hootenanny/pulls{/number}","milestones_url":"https://api.github.com/repos/ngageoint/hootenanny/milestones{/number}","notifications_url":"https://api.github.com/repos/ngageoint/hootenanny/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ngageoint/hootenanny/labels{/name}","releases_url":"https://api.github.com/repos/ngageoint/hootenanny/releases{/id}","deployments_url":"https://api.github.com/repos/ngageoint/hootenanny/deployments","created_at":"2015-06-13T13:33:38Z","updated_at":"2016-12-13T19:52:01Z","pushed_at":"2016-12-20T18:52:21Z","git_url":"git://github.com/ngageoint/hootenanny.git","ssh_url":"git@github.com:ngageoint/hootenanny.git","clone_url":"https://github.com/ngageoint/hootenanny.git","svn_url":"https://github.com/ngageoint/hootenanny","homepage":null,"size":160818,"stargazers_count":93,"watchers_count":93,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":35,"mirror_url":null,"open_issues_count":185,"forks":35,"open_issues":185,"watchers":93,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ngageoint/hootenanny/pulls/1255"},"html":{"href":"https://github.com/ngageoint/hootenanny/pull/1255"},"issue":{"href":"https://api.github.com/repos/ngageoint/hootenanny/issues/1255"},"comments":{"href":"https://api.github.com/repos/ngageoint/hootenanny/issues/1255/comments"},"review_comments":{"href":"https://api.github.com/repos/ngageoint/hootenanny/pulls/1255/comments"},"review_comment":{"href":"https://api.github.com/repos/ngageoint/hootenanny/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ngageoint/hootenanny/pulls/1255/commits"},"statuses":{"href":"https://api.github.com/repos/ngageoint/hootenanny/statuses/0e1de8b2dfe70c755acc59e9a1753c71f4c33c0d"}}}}
{"actor":{"display_login":"bmarchant"}}