{"action":"created","issue":{"url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine/issues/302","repository_url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine","labels_url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine/issues/302/labels{/name}","comments_url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine/issues/302/comments","events_url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine/issues/302/events","html_url":"https://github.com/STORM-IRIT/Radium-Engine/issues/302","id":314621886,"number":302,"title":"Radium Core refactoring: call for participation","user":{"login":"nmellado","id":6310221,"avatar_url":"https://avatars2.githubusercontent.com/u/6310221?v=4","gravatar_id":"","url":"https://api.github.com/users/nmellado","html_url":"https://github.com/nmellado","followers_url":"https://api.github.com/users/nmellado/followers","following_url":"https://api.github.com/users/nmellado/following{/other_user}","gists_url":"https://api.github.com/users/nmellado/gists{/gist_id}","starred_url":"https://api.github.com/users/nmellado/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nmellado/subscriptions","organizations_url":"https://api.github.com/users/nmellado/orgs","repos_url":"https://api.github.com/users/nmellado/repos","events_url":"https://api.github.com/users/nmellado/events{/privacy}","received_events_url":"https://api.github.com/users/nmellado/received_events","type":"User","site_admin":false},"labels":[{"id":331992001,"url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine/labels/Core","name":"Core","color":"eb6420","default":false},{"id":903364630,"url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine/labels/[master-v1]","name":"[master-v1]","color":"006b75","default":false},{"id":232856105,"url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine/labels/question","name":"question","color":"cc317c","default":true}],"state":"open","locked":false,"assignee":{"login":"hoshiryu","id":460844,"avatar_url":"https://avatars2.githubusercontent.com/u/460844?v=4","gravatar_id":"","url":"https://api.github.com/users/hoshiryu","html_url":"https://github.com/hoshiryu","followers_url":"https://api.github.com/users/hoshiryu/followers","following_url":"https://api.github.com/users/hoshiryu/following{/other_user}","gists_url":"https://api.github.com/users/hoshiryu/gists{/gist_id}","starred_url":"https://api.github.com/users/hoshiryu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hoshiryu/subscriptions","organizations_url":"https://api.github.com/users/hoshiryu/orgs","repos_url":"https://api.github.com/users/hoshiryu/repos","events_url":"https://api.github.com/users/hoshiryu/events{/privacy}","received_events_url":"https://api.github.com/users/hoshiryu/received_events","type":"User","site_admin":false},"assignees":[{"login":"hoshiryu","id":460844,"avatar_url":"https://avatars2.githubusercontent.com/u/460844?v=4","gravatar_id":"","url":"https://api.github.com/users/hoshiryu","html_url":"https://github.com/hoshiryu","followers_url":"https://api.github.com/users/hoshiryu/followers","following_url":"https://api.github.com/users/hoshiryu/following{/other_user}","gists_url":"https://api.github.com/users/hoshiryu/gists{/gist_id}","starred_url":"https://api.github.com/users/hoshiryu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hoshiryu/subscriptions","organizations_url":"https://api.github.com/users/hoshiryu/orgs","repos_url":"https://api.github.com/users/hoshiryu/repos","events_url":"https://api.github.com/users/hoshiryu/events{/privacy}","received_events_url":"https://api.github.com/users/hoshiryu/received_events","type":"User","site_admin":false},{"login":"louen","id":1011507,"avatar_url":"https://avatars1.githubusercontent.com/u/1011507?v=4","gravatar_id":"","url":"https://api.github.com/users/louen","html_url":"https://github.com/louen","followers_url":"https://api.github.com/users/louen/followers","following_url":"https://api.github.com/users/louen/following{/other_user}","gists_url":"https://api.github.com/users/louen/gists{/gist_id}","starred_url":"https://api.github.com/users/louen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/louen/subscriptions","organizations_url":"https://api.github.com/users/louen/orgs","repos_url":"https://api.github.com/users/louen/repos","events_url":"https://api.github.com/users/louen/events{/privacy}","received_events_url":"https://api.github.com/users/louen/received_events","type":"User","site_admin":false},{"login":"dlyr","id":11328509,"avatar_url":"https://avatars1.githubusercontent.com/u/11328509?v=4","gravatar_id":"","url":"https://api.github.com/users/dlyr","html_url":"https://github.com/dlyr","followers_url":"https://api.github.com/users/dlyr/followers","following_url":"https://api.github.com/users/dlyr/following{/other_user}","gists_url":"https://api.github.com/users/dlyr/gists{/gist_id}","starred_url":"https://api.github.com/users/dlyr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dlyr/subscriptions","organizations_url":"https://api.github.com/users/dlyr/orgs","repos_url":"https://api.github.com/users/dlyr/repos","events_url":"https://api.github.com/users/dlyr/events{/privacy}","received_events_url":"https://api.github.com/users/dlyr/received_events","type":"User","site_admin":false},{"login":"MathiasPaulin","id":11328578,"avatar_url":"https://avatars1.githubusercontent.com/u/11328578?v=4","gravatar_id":"","url":"https://api.github.com/users/MathiasPaulin","html_url":"https://github.com/MathiasPaulin","followers_url":"https://api.github.com/users/MathiasPaulin/followers","following_url":"https://api.github.com/users/MathiasPaulin/following{/other_user}","gists_url":"https://api.github.com/users/MathiasPaulin/gists{/gist_id}","starred_url":"https://api.github.com/users/MathiasPaulin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MathiasPaulin/subscriptions","organizations_url":"https://api.github.com/users/MathiasPaulin/orgs","repos_url":"https://api.github.com/users/MathiasPaulin/repos","events_url":"https://api.github.com/users/MathiasPaulin/events{/privacy}","received_events_url":"https://api.github.com/users/MathiasPaulin/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-04-16T12:08:03Z","updated_at":"2018-04-16T14:31:32Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"As mentioned in the [Radium Stable Release project ](https://github.com/STORM-IRIT/Radium-Engine/projects/2) , we need to simplify Radium's **Core** package.\r\nThis issue is expected to be a discussion leading to the final design of the Core package.\r\n\r\nLooking at the directory structure (we assume `master-v1` as a basis), I'm proposing the following changes (for the sake of clarity, folders and files are named relatively with `Core/`, e.g., `Animation`,`Animation/Handle` and `RaCore.hpp`):\r\n\r\n- We keep 6 main folders:\r\n  - `Animation`: no change with the current version\r\n  - `Asset`: former `File` folder\r\n  - `Container`: former `Containers` folder\r\n  - `Geometry`: contains former `Geometry`, `Mesh` and `Algorithm` folders (see below)\r\n  - `Math`: no change with current version\r\n  - `Utils`: current folder + other utility classes (see below).\r\n- We move\r\n  - `Algorithm` as `Geometry/Algorithm`: because it contains only algorithms related to geometry\r\n  - `Event` to `../GuiBase`\r\n  - `Index/*` into `Container`\r\n  - `Log/*`, `String/*` and `Time/*` into `Utils/`\r\n - We use the official 3rd party repository for `stb_image`: https://github.com/nothings/stb\r\n\r\nAll the folders containing namespace function would also be removed, e.g., `String/StringUtils.hpp` would become `Utils/StringUtils.hpp`, and not `Utils/String/StringUtils.hpp`.\r\n\r\nOpen questions:\r\n - Is the `Task` system part of the `Core` or `Engine` package ? If it's in the `Core`, do we have all the necessary classes in this package to manage and use tasks without `Engine` and `GuiBase` ?\r\n - The `TreeStructure` folder could be moved either into `Geometry` or `Containers`. As for me both would make sens, I'm expecting you some comments about this.\r\n - There is a lot of redundant code related to topological mesh representation and processing. As `TopologicalMesh` will be the next standard, all other representations and algorithms using them will be removed. **If you use adjacency or DCEL-related data-structures or algorithms**, you must express your needs here so we can adapt the `TopologicalMesh` ecosystem.\r\n - There is a lot of namespace functions in the existing `Geometry` folder. I suggest we move them as much as possible into their related classes. Please also express your needs here if you are currently using this."},"comment":{"url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine/issues/comments/381619586","html_url":"https://github.com/STORM-IRIT/Radium-Engine/issues/302#issuecomment-381619586","issue_url":"https://api.github.com/repos/STORM-IRIT/Radium-Engine/issues/302","id":381619586,"user":{"login":"hoshiryu","id":460844,"avatar_url":"https://avatars2.githubusercontent.com/u/460844?v=4","gravatar_id":"","url":"https://api.github.com/users/hoshiryu","html_url":"https://github.com/hoshiryu","followers_url":"https://api.github.com/users/hoshiryu/followers","following_url":"https://api.github.com/users/hoshiryu/following{/other_user}","gists_url":"https://api.github.com/users/hoshiryu/gists{/gist_id}","starred_url":"https://api.github.com/users/hoshiryu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hoshiryu/subscriptions","organizations_url":"https://api.github.com/users/hoshiryu/orgs","repos_url":"https://api.github.com/users/hoshiryu/repos","events_url":"https://api.github.com/users/hoshiryu/events{/privacy}","received_events_url":"https://api.github.com/users/hoshiryu/received_events","type":"User","site_admin":false},"created_at":"2018-04-16T14:31:32Z","updated_at":"2018-04-16T14:31:32Z","author_association":"CONTRIBUTOR","body":"I agree with the directory structure changes you propose.\r\nRegarding the `Task` system, having it in `Core` allows to build Core-dependent only apps that use independent tasks, though I don't have any example in mind. And yes, we have all we need for those.\r\nRegarding the `TreeStructure`, I would rather put it in Geometry, and keep Containers for vectors and grids which are actual data containers.\r\nFinally, for the `TopologicalMesh` ecosystem, It would be nice to consider the possibility to have subdivision as a post-process done right before the rendering (during the Core to GL routines?), and so even on animated meshes.\r\nFor the subdivision, I am currently using a CPU CatmullClark scheme (based on `HalfEdgeData`) performed on the polygonal faces of the (modified) TriangleMesh. Just applying tesselation through the shaders might be enough, though I don't know how nice the results are w.r.t. the mesh polygonisation."}}
{"actor":{"display_login":"hoshiryu"}}