私は現在 2D ゲーム エンジンに取り組んでおり、LUA スクリプティング / インタープリターの実装中につまずきました。
私はSWIGを使用しており、基本はすべて正常に機能しています。
エンジンでは、 Vector と Matrix に関連するすべての領域に GLM (OpenGL Mathematics Libary http://glm.g-truc.net/ ) を使用しています。
次のように LUA でメソッドを呼び出すことができるように、GLM を (基本レベルで) SWIG から LUA 経由で公開する必要があります。
actor:GetPosition() <- Which returns a glm::vec2
GLM は非常に複雑なライブラリ (控えめな表現かもしれません 笑) であり、すべてを公開する必要はありません。glm::vec2 クラスの xy コンポーネントにアクセスできるようにしたいだけです。
SWIG は完全なクラス定義を必要とせず、glm::vec2 クラスには x,y パラメータだけがあると SWIG に仮定させる方法が必要なので、これは簡単に違いないと確信しています。
SWIGでプロキシクラスを使用することがこれを行う方法であるかどうかはわかりませんか? または他の方法ですか?私は LUA 統合と SWIG もまったく初めてです。
私が本当に行きたくないルートの 1 つは、GLM を捨てて、はるかにシンプルな独自の Vector/Matrix ライブラリを作成することです。テンプレートなどはなく、SWIG でラップするだけで済みますが、これは時間の無駄だと感じています。最終的には、あまり強力ではない数学ライブラリになってしまいます:(。
事前に感謝します。必要に応じて、さらに情報を提供できます。