{"action":"created","issue":{"url":"https://api.github.com/repos/Kitware/SMTK/issues/149","labels_url":"https://api.github.com/repos/Kitware/SMTK/issues/149/labels{/name}","comments_url":"https://api.github.com/repos/Kitware/SMTK/issues/149/comments","events_url":"https://api.github.com/repos/Kitware/SMTK/issues/149/events","html_url":"https://github.com/Kitware/SMTK/pull/149","id":69630290,"number":149,"title":"Refactor EntityGroupOp in discrete session to also handle domain set","user":{"login":"yumin","id":234233,"avatar_url":"https://avatars.githubusercontent.com/u/234233?v=3","gravatar_id":"","url":"https://api.github.com/users/yumin","html_url":"https://github.com/yumin","followers_url":"https://api.github.com/users/yumin/followers","following_url":"https://api.github.com/users/yumin/following{/other_user}","gists_url":"https://api.github.com/users/yumin/gists{/gist_id}","starred_url":"https://api.github.com/users/yumin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yumin/subscriptions","organizations_url":"https://api.github.com/users/yumin/orgs","repos_url":"https://api.github.com/users/yumin/repos","events_url":"https://api.github.com/users/yumin/events{/privacy}","received_events_url":"https://api.github.com/users/yumin/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-20T16:52:54Z","updated_at":"2015-04-21T03:30:06Z","closed_at":"2015-04-20T17:13:03Z","pull_request":{"url":"https://api.github.com/repos/Kitware/SMTK/pulls/149","html_url":"https://github.com/Kitware/SMTK/pull/149","diff_url":"https://github.com/Kitware/SMTK/pull/149.diff","patch_url":"https://github.com/Kitware/SMTK/pull/149.patch"},"body":"    In ModelBuilder-v3, there is a vtkModelMaterial class and its operator class,\r\n    vtkMaterialOperator. Essentially this is a partitioned group, meaning entities\r\n    can only belong to one group (in V3, the group is called Domain set, which is\r\n    normally associated with material type of attributes). In this commit, we brought\r\n    back the vtkMaterialOperator, so that users can create group of volumes (3d) or group\r\n    of faces (2d), then associate (material) attribute to them. However, ideally we\r\n    should have a univeral group op across all sessions to cluster entities, and then\r\n    these groups can be used for attribute associations.\r\n"},"comment":{"url":"https://api.github.com/repos/Kitware/SMTK/issues/comments/94627553","html_url":"https://github.com/Kitware/SMTK/pull/149#issuecomment-94627553","issue_url":"https://api.github.com/repos/Kitware/SMTK/issues/149","id":94627553,"user":{"login":"vibraphone","id":2973543,"avatar_url":"https://avatars.githubusercontent.com/u/2973543?v=3","gravatar_id":"","url":"https://api.github.com/users/vibraphone","html_url":"https://github.com/vibraphone","followers_url":"https://api.github.com/users/vibraphone/followers","following_url":"https://api.github.com/users/vibraphone/following{/other_user}","gists_url":"https://api.github.com/users/vibraphone/gists{/gist_id}","starred_url":"https://api.github.com/users/vibraphone/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vibraphone/subscriptions","organizations_url":"https://api.github.com/users/vibraphone/orgs","repos_url":"https://api.github.com/users/vibraphone/repos","events_url":"https://api.github.com/users/vibraphone/events{/privacy}","received_events_url":"https://api.github.com/users/vibraphone/received_events","type":"User","site_admin":false},"created_at":"2015-04-21T03:30:06Z","updated_at":"2015-04-21T03:30:06Z","body":"There are bits set aside in `smtk/model/EntityTypeBits.h` to mark groups as partitions or covers but there are no tests to enforce these rules — in part because there are no operators to construct the initial set of groups that form the partition or cover or manipulate the groups after their creation. Note that using groups this way requires 2 levels of groups: a toplevel group with the `PARTITION` or `COVER` bit set and child groups that collectively define the membership.\r\n\r\nThe 2-level groups are required so that partitions/covers do not have to encompass all entities in a model manager or session. Instead, operators should just verify that the membership of the toplevel group before and after a group operation is unchanged."}}