{"action":"created","issue":{"url":"https://api.github.com/repos/n8rzz/atc/issues/17","repository_url":"https://api.github.com/repos/n8rzz/atc","labels_url":"https://api.github.com/repos/n8rzz/atc/issues/17/labels{/name}","comments_url":"https://api.github.com/repos/n8rzz/atc/issues/17/comments","events_url":"https://api.github.com/repos/n8rzz/atc/issues/17/events","html_url":"https://github.com/n8rzz/atc/issues/17","id":181200948,"number":17,"title":"Create Coordinate class","user":{"login":"n8rzz","id":3325985,"avatar_url":"https://avatars.githubusercontent.com/u/3325985?v=3","gravatar_id":"","url":"https://api.github.com/users/n8rzz","html_url":"https://github.com/n8rzz","followers_url":"https://api.github.com/users/n8rzz/followers","following_url":"https://api.github.com/users/n8rzz/following{/other_user}","gists_url":"https://api.github.com/users/n8rzz/gists{/gist_id}","starred_url":"https://api.github.com/users/n8rzz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/n8rzz/subscriptions","organizations_url":"https://api.github.com/users/n8rzz/orgs","repos_url":"https://api.github.com/users/n8rzz/repos","events_url":"https://api.github.com/users/n8rzz/events{/privacy}","received_events_url":"https://api.github.com/users/n8rzz/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/n8rzz/atc/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/n8rzz/atc/milestones/2","html_url":"https://github.com/n8rzz/atc/milestones/v3.0.x","labels_url":"https://api.github.com/repos/n8rzz/atc/milestones/2/labels","id":2050047,"number":2,"title":"v3.0.x","description":"","creator":{"login":"n8rzz","id":3325985,"avatar_url":"https://avatars.githubusercontent.com/u/3325985?v=3","gravatar_id":"","url":"https://api.github.com/users/n8rzz","html_url":"https://github.com/n8rzz","followers_url":"https://api.github.com/users/n8rzz/followers","following_url":"https://api.github.com/users/n8rzz/following{/other_user}","gists_url":"https://api.github.com/users/n8rzz/gists{/gist_id}","starred_url":"https://api.github.com/users/n8rzz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/n8rzz/subscriptions","organizations_url":"https://api.github.com/users/n8rzz/orgs","repos_url":"https://api.github.com/users/n8rzz/repos","events_url":"https://api.github.com/users/n8rzz/events{/privacy}","received_events_url":"https://api.github.com/users/n8rzz/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2016-10-05T16:18:37Z","updated_at":"2016-10-05T16:29:38Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2016-10-05T16:18:08Z","updated_at":"2016-10-06T00:35:16Z","closed_at":null,"body":"A model object that defines a latitude/longitude position.\r\n\r\n- [ ] Create class definition for `Coordinates`  \r\n- [ ] Provide public getters/setters for `latitude` and `longitude`\r\n- [ ] Move lat/long parse methods to this new class\r\n- [ ] Update implementations"},"comment":{"url":"https://api.github.com/repos/n8rzz/atc/issues/comments/251838140","html_url":"https://github.com/n8rzz/atc/issues/17#issuecomment-251838140","issue_url":"https://api.github.com/repos/n8rzz/atc/issues/17","id":251838140,"user":{"login":"n8rzz","id":3325985,"avatar_url":"https://avatars.githubusercontent.com/u/3325985?v=3","gravatar_id":"","url":"https://api.github.com/users/n8rzz","html_url":"https://github.com/n8rzz","followers_url":"https://api.github.com/users/n8rzz/followers","following_url":"https://api.github.com/users/n8rzz/following{/other_user}","gists_url":"https://api.github.com/users/n8rzz/gists{/gist_id}","starred_url":"https://api.github.com/users/n8rzz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/n8rzz/subscriptions","organizations_url":"https://api.github.com/users/n8rzz/orgs","repos_url":"https://api.github.com/users/n8rzz/repos","events_url":"https://api.github.com/users/n8rzz/events{/privacy}","received_events_url":"https://api.github.com/users/n8rzz/received_events","type":"User","site_admin":false},"created_at":"2016-10-06T00:35:16Z","updated_at":"2016-10-06T00:35:16Z","body":"Ahh, yeah no, separate class.  Your example is pretty much right on except for that the `Fix` would receive one single object and then internally create a `Position` which would in turn create the `Coordinate` instantiations.\n\nThere are a few more classes that I think we need that I haven't added issues for yet: `StandardRoute`, `StandardRouteCollection` and `Waypoint`.\n\nThe way I envision it, all the fixes will be instantiated independently of any `StandardRoute` (SID, STAR) when the airport loads they will live by themselves and have just enough information to know where and what they are.  The `CanvasController` will use these models when rendering the view.\n\nThen there will be this thing called a `StandardRoute`.  It is what it sounds like, a SID or STAR or maybe even an IAP.  This class will be a collection of `Waypoints`, which differs slightly from a `Fix` in that it has navigation-type information: min/max altitudes, speed restrictions, etc.  These `Waypoints` will most likely contain a reference to a specific fix that can be referred to for fix-specific information.\n\nThere will then be a `StandardRouteCollection` which will live in the `AirportModel` (most likely) and will be responsible for brokering information between the Airport and the StandardRoutes.\n\n\nTo be honest, I'm not sure if all this is necessary but I am sure that there needs to be a better way to organize and reason about `Fixes` and `StandardRoutes`.  Encapsulating them in class like this makes it much easier to pass them around.\n\nI'm starting to put them down here so that once we're done with `v3`, I have notes that I can use to continue development.  And, of course, provide a way to start conversations like this one. :-)"}}
{"actor":{"display_login":"n8rzz"}}