{"id":23828861,"url":"https://github.com/onitake/glam","last_synced_at":"2025-07-08T21:36:12.692Z","repository":{"id":17297667,"uuid":"20068095","full_name":"onitake/glam","owner":"onitake","description":"GLSL Style C++ Linear Algebra Math Library","archived":false,"fork":false,"pushed_at":"2016-08-22T18:46:22.000Z","size":17851,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-11T21:18:49.335Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onitake.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-22T16:17:29.000Z","updated_at":"2022-12-19T09:24:18.000Z","dependencies_parsed_at":"2022-08-25T10:50:25.477Z","dependency_job_id":null,"html_url":"https://github.com/onitake/glam","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onitake%2Fglam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onitake%2Fglam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onitake%2Fglam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onitake%2Fglam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onitake","download_url":"https://codeload.github.com/onitake/glam/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248480438,"owners_count":21110939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-02T13:57:18.797Z","updated_at":"2025-04-11T21:18:58.174Z","avatar_url":"https://github.com/onitake.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nGLAM - GLSL Linear Algebra Math Library\n=======================================\n\nGLAM is a linear algebra math library for C++11 programs.\nThe API mimics GLSL ES 3.0, enabling source code to be shared\nbetween the CPU and the GPU with minimal changes.\n\nThe code is Copyright © 2012-2014 by Gregor Riepl\nand released under the terms of a permissive open-source\nlicense. See the separate LICENSE file for details.\n\nThis library was originally developed as part of a larger\n3D engine project. As it grew significantly over time,\nthe developer decided to release it as a separate library\nso others may benefit from the effort.\n\nAside from the GLSL API, it also supports operations on\narbitrary data types, thanks to the versatility of C++\ntemplates. Certain features were written using C++11\nfeatures, so a modern compiler is required.\nThe original compatibility code may be made available at\na later point of time.\n\nAll code is contained in the glam namespace. If you\nwant to use GLSL code in your C++ program directly,\nyou may import the whole namespace with a \n\nusing namespace glam;\n\ndirective.\nIt is recommended to limit the namespace import to single\nfiles or containing namespaces, however.\n\nAll the GLSL vector and matrix types are supported,\nin addition to the base types that GLSL and C++ share.\nYou may also create custom types, matrices of arbitrary\nsize and composite element types. An example for the C++\ncomplex type is provided in test/dft.cpp.\n\nAll operations are inlined, possibly causing the compiler to\ngenerate large amounts of machine code for higher-dimensional\nmatrices. For example, if you need to use the matrix inversion\nin several places in your code, you should declare the\ntemplate function as extern and place the actual defition in\na single, separate source code file.\n\nTo do this, place the following line in a common header file:\n\nextern template mat4 mat4::inv() const;\n\nand the following in a separate source file:\n\ntemplate mat4 mat4::inv() const;\n\nThe code is completely machine independent, relying only on\nthe C/C++ standard math library and builtin operations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonitake%2Fglam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonitake%2Fglam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonitake%2Fglam/lists"}