{"action":"created","issue":{"url":"https://api.github.com/repos/nitlang/nit/issues/1918","labels_url":"https://api.github.com/repos/nitlang/nit/issues/1918/labels{/name}","comments_url":"https://api.github.com/repos/nitlang/nit/issues/1918/comments","events_url":"https://api.github.com/repos/nitlang/nit/issues/1918/events","html_url":"https://github.com/nitlang/nit/pull/1918","id":126242192,"number":1918,"title":"Intro parsers to load 3D models from .obj and .mtl files","user":{"login":"xymus","id":208057,"avatar_url":"https://avatars.githubusercontent.com/u/208057?v=3","gravatar_id":"","url":"https://api.github.com/users/xymus","html_url":"https://github.com/xymus","followers_url":"https://api.github.com/users/xymus/followers","following_url":"https://api.github.com/users/xymus/following{/other_user}","gists_url":"https://api.github.com/users/xymus/gists{/gist_id}","starred_url":"https://api.github.com/users/xymus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xymus/subscriptions","organizations_url":"https://api.github.com/users/xymus/orgs","repos_url":"https://api.github.com/users/xymus/repos","events_url":"https://api.github.com/users/xymus/events{/privacy}","received_events_url":"https://api.github.com/users/xymus/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nitlang/nit/labels/need_review","name":"need_review","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-01-12T18:24:09Z","updated_at":"2016-01-14T15:57:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/nitlang/nit/pulls/1918","html_url":"https://github.com/nitlang/nit/pull/1918","diff_url":"https://github.com/nitlang/nit/pull/1918.diff","patch_url":"https://github.com/nitlang/nit/pull/1918.patch"},"body":"Intro parsers to load 3D models from the ASCII based format of .obj and .mtl files. Also as support intro a new kind of asset, `app::TextAsset`, with lazy loading in the style of `Sound` and `Texture`.\r\n\r\nModel parsing services will be used by the 3D API of gamnit to load 3D models generated by modeler tools like Blender.\r\n\r\nThe services in `gamnit::model_parsers` are independent of gamnit. However since they are game related, it is a nice package to classify them in. They still can be used by any other 3D graphics engine, as `gamnit::network` which is also independent but game oriented. This adds a small duplication in their representation because a model is stored differently once loaded in gamnit. But the format in gamnit is so low-level (only arrays of Float) that we need an intermediate representation to triangulate faces and stuff like that.\r\n\r\nServices of `model_parser_base` may be moved to other modules in the future as needed. The services added to `StringProcessor`, may be useful to other parsers and thus it could be moved up to `parser_base`. `Vec3` and `Vec4` apply an API similar to `vec3 & vec4` of GLSL. I may move them up to gamnit or glesv2 and add more services to transform from and to points, colors and other float based data vectors."},"comment":{"url":"https://api.github.com/repos/nitlang/nit/issues/comments/171681440","html_url":"https://github.com/nitlang/nit/pull/1918#issuecomment-171681440","issue_url":"https://api.github.com/repos/nitlang/nit/issues/1918","id":171681440,"user":{"login":"xymus","id":208057,"avatar_url":"https://avatars.githubusercontent.com/u/208057?v=3","gravatar_id":"","url":"https://api.github.com/users/xymus","html_url":"https://github.com/xymus","followers_url":"https://api.github.com/users/xymus/followers","following_url":"https://api.github.com/users/xymus/following{/other_user}","gists_url":"https://api.github.com/users/xymus/gists{/gist_id}","starred_url":"https://api.github.com/users/xymus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xymus/subscriptions","organizations_url":"https://api.github.com/users/xymus/orgs","repos_url":"https://api.github.com/users/xymus/repos","events_url":"https://api.github.com/users/xymus/events{/privacy}","received_events_url":"https://api.github.com/users/xymus/received_events","type":"User","site_admin":false},"created_at":"2016-01-14T15:57:02Z","updated_at":"2016-01-14T15:57:02Z","body":"Rerolled to remove asserts."}}