{"action":"created","issue":{"url":"https://api.github.com/repos/graspit-simulator/graspit/issues/38","repository_url":"https://api.github.com/repos/graspit-simulator/graspit","labels_url":"https://api.github.com/repos/graspit-simulator/graspit/issues/38/labels{/name}","comments_url":"https://api.github.com/repos/graspit-simulator/graspit/issues/38/comments","events_url":"https://api.github.com/repos/graspit-simulator/graspit/issues/38/events","html_url":"https://github.com/graspit-simulator/graspit/pull/38","id":155501236,"number":38,"title":"Abstract IVmgr for headless mode","user":{"login":"JenniferBuehler","id":12842634,"avatar_url":"https://avatars.githubusercontent.com/u/12842634?v=3","gravatar_id":"","url":"https://api.github.com/users/JenniferBuehler","html_url":"https://github.com/JenniferBuehler","followers_url":"https://api.github.com/users/JenniferBuehler/followers","following_url":"https://api.github.com/users/JenniferBuehler/following{/other_user}","gists_url":"https://api.github.com/users/JenniferBuehler/gists{/gist_id}","starred_url":"https://api.github.com/users/JenniferBuehler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JenniferBuehler/subscriptions","organizations_url":"https://api.github.com/users/JenniferBuehler/orgs","repos_url":"https://api.github.com/users/JenniferBuehler/repos","events_url":"https://api.github.com/users/JenniferBuehler/events{/privacy}","received_events_url":"https://api.github.com/users/JenniferBuehler/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-05-18T13:28:37Z","updated_at":"2016-06-16T16:03:07Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/graspit-simulator/graspit/pulls/38","html_url":"https://github.com/graspit-simulator/graspit/pull/38","diff_url":"https://github.com/graspit-simulator/graspit/pull/38.diff","patch_url":"https://github.com/graspit-simulator/graspit/pull/38.patch"},"body":"I've added a simple base class IVmgrBase which is needed to provide different implementations of the IV manager functionality. There are two classes deriving from it:\r\n\r\n* IVmgrBase: Base class.\r\n       * IVmgr: the existing IVmgr which can be used with GUI.\r\n       * IVmgrHeadless: a new class which can instead be used to run in headless mode.\r\n\r\n\r\n**Changes which were required**\r\n\r\n- Created *IVmgrBase* class. The interface only includes methods which are required where IVmgr also needs to run headless mode. There is only one new method:\r\n    * virtual void viewAll()     \r\n      Can be used from World.cpp instead of myIVmgr->getViewer()->viewAll(). This method does nothing in the base class.\r\n- Added class *IVmgrHeadless* which derives from IVmgrBase and allows running in headless mode.\r\n- Original class *IVmgr* has remained untouched, except:\r\n    * ivmgr.h:\r\n        - Added the IVmgrBase class inheritance\r\n        - Made the following functions virtual:\r\n            - setCamera()\r\n            - getCamera()\r\n        - Added implementation of:\r\n            - virtual void viewAll(), which just calls getViewer()->viewAll()\r\n        - Removed *#define MAX_COLLISIONS* and *#define MAX_POLYTOPES* statements and moved them to *IVmgrBase*\r\n- class World:\r\n    * world.h:\r\n        - All references to *IVmgr* have been changed to *IVmgrBase* (3 changes)\r\n    * world.cpp:\r\n        - All references to *IVmgr* have been changed to *IVmgrBase* (1 change in constuctor)\r\n        - #include \"ivmgrBase.h\" instead of *ivmgr.h*\r\n        - Calling *IVmgrBase::viewAll()* instead of *ivmgr->getViewer()->viewAll()*."},"comment":{"url":"https://api.github.com/repos/graspit-simulator/graspit/issues/comments/226531921","html_url":"https://github.com/graspit-simulator/graspit/pull/38#issuecomment-226531921","issue_url":"https://api.github.com/repos/graspit-simulator/graspit/issues/38","id":226531921,"user":{"login":"jvarley","id":1675542,"avatar_url":"https://avatars.githubusercontent.com/u/1675542?v=3","gravatar_id":"","url":"https://api.github.com/users/jvarley","html_url":"https://github.com/jvarley","followers_url":"https://api.github.com/users/jvarley/followers","following_url":"https://api.github.com/users/jvarley/following{/other_user}","gists_url":"https://api.github.com/users/jvarley/gists{/gist_id}","starred_url":"https://api.github.com/users/jvarley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvarley/subscriptions","organizations_url":"https://api.github.com/users/jvarley/orgs","repos_url":"https://api.github.com/users/jvarley/repos","events_url":"https://api.github.com/users/jvarley/events{/privacy}","received_events_url":"https://api.github.com/users/jvarley/received_events","type":"User","site_admin":false},"created_at":"2016-06-16T16:03:07Z","updated_at":"2016-06-16T16:03:07Z","body":"2 thoughts:\r\n\r\n1)Can we add a new command line option to enable graspit to be run in a headless mode?  I feel a bit weary about adding new files that aren't used by GraspIt in a standalone mode.  Also, I would really like to be able to use this.\r\n\r\n2) What do you guys think of:\r\nivmgrbase -> IVManager\r\nivmgr -> InteractiveIVManager\r\nivmgrHeadless -> HeadlessIVManager"}}
{"actor":{"display_login":"jvarley"}}