{"id":22032414,"url":"https://github.com/vaiorabbit/mprtest","last_synced_at":"2025-07-17T08:35:16.594Z","repository":{"id":9616766,"uuid":"11542804","full_name":"vaiorabbit/MPRTest","owner":"vaiorabbit","description":"A demonstration of the Minkowski Portal Refinement algorithm","archived":false,"fork":false,"pushed_at":"2022-01-09T06:30:08.000Z","size":309,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-30T08:35:59.731Z","etag":null,"topics":["collision-detection","minkowski-sum","opengl","ruby"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/vaiorabbit.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-20T05:56:51.000Z","updated_at":"2024-01-20T12:28:20.000Z","dependencies_parsed_at":"2022-09-07T08:00:21.074Z","dependency_job_id":null,"html_url":"https://github.com/vaiorabbit/MPRTest","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/vaiorabbit%2FMPRTest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaiorabbit%2FMPRTest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaiorabbit%2FMPRTest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaiorabbit%2FMPRTest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vaiorabbit","download_url":"https://codeload.github.com/vaiorabbit/MPRTest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236063501,"owners_count":19088988,"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":["collision-detection","minkowski-sum","opengl","ruby"],"created_at":"2024-11-30T08:28:02.107Z","updated_at":"2025-01-28T18:17:16.022Z","avatar_url":"https://github.com/vaiorabbit.png","language":"Ruby","readme":"\u003c!-- -*- mode:markdown; coding:utf-8; -*- --\u003e\r\n\r\n# MPRTest : A demonstration of the Minkowski Portal Refinement algorithm #\r\n\r\nDemonstrates intersection tests with the Minkowski Portal Refinement\r\n(MPR) algorithm, introduced by Gary Snethen.\r\n\r\n*   Last Update: Jan 08, 2022\r\n*   Since: Nov 16, 2008\r\n\r\nExample:\r\n\r\n*   Cone-Cylinder (not colliding)\r\n\r\n       \u003cimg src=\"https://raw.githubusercontent.com/vaiorabbit/MPRTest/master/doc/Result00.png\" width=\"350\"\u003e\r\n\r\n*   Cone-Cylinder (detected colliding position and penetration)\r\n\r\n       \u003cimg src=\"https://raw.githubusercontent.com/vaiorabbit/MPRTest/master/doc/Result01.png\" width=\"350\"\u003e\r\n\r\n\r\n## Prerequisites ##\r\n\r\n*   Ruby Interpreter \u003chttp://www.ruby-lang.org/\u003e\r\n    *   Version : 2.4.0 or higher\r\n    *   RubyInstaller For Windows :\r\n        *   http://rubyinstaller.org\r\n\r\n*   GLFW\r\n  *   Copy GLFW DLL (glfw3.dll or libglfw.dylib) here.\r\n  *   GLFW (https://www.glfw.org).\r\n\r\n*   opengl-bindings\r\n    *   Available via RubyGems.\r\n\r\n            $ gem install opengl-bindings2\r\n\r\n    *   Ref.:\r\n        *   https://rubygems.org/gems/opengl-bindings\r\n        *   https://github.com/vaiorabbit/ruby-opengl\r\n\r\n*   rmath3d\r\n    *   Available via RubyGems\r\n\r\n            $ gem install rmath3d_plain\r\n\r\n    *   Ref.:\r\n        *    https://rubygems.org/gems/rmath3d\r\n        *    https://github.com/vaiorabbit/rmath3d\r\n\r\n## Usage ##\r\n\r\n    X:\\\u003e ruby Application.rb\r\n\r\n*   The two objects are rendered with transparency when the intersection\r\n    test (`MPRAlgorithm::get_contact()`) returns `true`;\r\n\r\n\r\n## Operation ##\r\n\r\n*   Q or Esc     : quit.\r\n*   Space        : reset the objects' setting.\r\n*   WASD         : move red object.\r\n*   Z            : change type of shape0 (red)\r\n*   IJKL         : move blue object.\r\n*   M            : change type of shape1 (blue)\r\n*   Mouse L/R    : move eye position.\r\n\r\n\r\n## Reference ##\r\n\r\n*   Game Programming Gems 7 \u003chttp://www.charlesriver.com/Books/BookDetail.aspx?productID=373\u003e\r\n    *   See \"2.5 XenoCollide: Complex Collision Made Simple\" for algorithm details.\r\n\r\n*   XenoCollide \u003chttp://xenocollide.com\u003e\r\n    *   Support site maintained by Gary Snethen, the author of the GPG7 article.\r\n\r\n*   mpr2d \u003chttp://code.google.com/p/mpr2d/\u003e\r\n    *   A 2D implementation of the MPR algorithm by Mason Green.\r\n\r\n\r\n## License ##\r\n\r\nAll source codes are available under the terms of the zlib/libpng license\r\n(see LICENSE.txt).\r\n\r\n-------------------------------------------------------------------------------\r\n\r\n# MPRTest : Minkowski Portal Refinement アルゴリズムのデモプログラム #\r\n\r\nGary Snethen 氏による Minkowski Portal Refinement (MPR) アルゴリズムのデモプログラムです。\r\n\r\n\r\n## 必要なもの ##\r\n\r\n*   Ruby \u003chttp://www.ruby-lang.org/\u003e\r\n    *   バージョン : 2.4.0 以降\r\n    *   RubyInstaller For Windows :\r\n        *   http://rubyinstaller.org\r\n\r\n*   GLFW\r\n  *   GLFWのDLL (glfw3.dll もしくは libglfw.dylib) をここにコピーしてください。\r\n  *   GLFW (https://www.glfw.org).\r\n\r\n*   opengl-bindings\r\n    *   RubyGems でインスールできます。\r\n\r\n            $ gem install opengl-bindings2\r\n\r\n    *   参考:\r\n        *   https://rubygems.org/gems/opengl-bindings\r\n        *   https://github.com/vaiorabbit/ruby-opengl\r\n\r\n*   rmath3d\r\n    *   RubyGems でインスールできます。\r\n\r\n            $ gem install rmath3d_plain\r\n\r\n    *   Ref.:\r\n        *    https://rubygems.org/gems/rmath3d\r\n        *    https://github.com/vaiorabbit/rmath3d\r\n\r\n\r\n## 使い方 ##\r\n\r\n    X:\\\u003e ruby Application.rb\r\n\r\n*   交差判定 (`MPRAlgorithm::get_contact()`) が true となる場合に、2つの箱が半透明で描画されます。\r\n\r\n\r\n## Operation ##\r\n\r\n*   Q または Esc         : プログラムの終了\r\n*   Space                : オブジェクトの設定をリセット\r\n*   WASD                 : 赤いオブジェクトの移動\r\n*   Z                    : 赤いオブジェクトの形状変更\r\n*   IJKL                 : 青いオブジェクトの移動\r\n*   M                    : 青いオブジェクトの形状変更\r\n*   マウスでの L/R       : 視点の移動\r\n\r\n\r\n## 参考文献 ##\r\n\r\n*   Game Programming Gems 7 \u003chttp://www.charlesriver.com/Books/BookDetail.aspx?productID=373\u003e\r\n    *   \"2.5 XenoCollide: Complex Collision Made Simple\" にアルゴリズムの詳細が掲載されています。\r\n\r\n*   XenoCollide \u003chttp://xenocollide.com\u003e\r\n    *   Gary Snethen 氏（上記GPG7の著者）によるサポートサイトです。\r\n\r\n*   mpr2d \u003chttp://code.google.com/p/mpr2d/\u003e\r\n    *   Mason Green 氏による 2D版のデモプログラムです。\r\n\r\n\r\n## License ##\r\n\r\nソースコードは zlib/libpng ライセンスの条件下で利用可能です。\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaiorabbit%2Fmprtest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaiorabbit%2Fmprtest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaiorabbit%2Fmprtest/lists"}