AGXの調べ方

  • AGXの情報は様々なところに掲載されている。

  • インターネット上の情報は リンク にまとめている。

  • ここでは、AGXの調べ方について説明する。

注釈

AGXはC++で開発されており、マニュアルやAPIリファレンスの内容はC++ベースである。 APIの使い方は言語間で大きな違いはない。AGX PythonやC#もこれらのドキュメントを参照する。 例えばPythonは、C++のダブルコロン ::. に読み替える。

AGX Dynamics Main Page

AGX Dynamics Main PageはAGXに同梱されているhtmlページである。 ページは <AGX_DIR>/doc/main/index.html に配置されており、ブラウザで閲覧する。 ページには次のドキュメントのリンクや情報が記載されている。

  • AGX Dynamics User Manual: マニュアル

  • AGX Dynamics API documentation: Doxygenを使ったAPIリファレンス

  • Keybindings and arguments for agxViewer: agxViewerのキーボード割当、コマンドラインオプション

  • Changelog

  • 各種チュートリアル、デモへのリンク

  • AGXUnity、AGXUnrealの情報

  • Legal information : 利用規約

../../_images/agx_main_page.png

APIリファレンス

AGXが提供するクラス、関数は AGX Dynamics API Reference [1] に掲載されている。 Main PageのNamespacesから該当のクラスや関数まで辿ったり、Searchボックスにキーワードを入力してAPIを調べる。

../../_images/agx_api_reference_main_page.png

デモやチュートリアルなどAGXのソースコードを読んでいて機能や使い方がわからないAPIがある場合、次のように調べる。

APIの調べ方

Searchボックスに、調べたいAPIの名前を入力する。 例えば、AGX Pythonのコードで rb.setPostion(0, 2, 1) のAPIを調べるには setPosition と入力する。

入力すると、候補となるAPIが表示される。 候補の中から該当のAPIを選択する。 この場合、 rb.setPostion(0, 2, 1)rbagx.RigidBody クラスであり、 setPostion() の引数は agx.Real (実数)が3つあることから、 agx::RigidBody::setPosition(agx::Real x, agx::Real y, agx::Real z) を選択する。

../../_images/agx_api_reference_search.png

APIを選択すると、対象のページに移動する。 ページには関数名、戻り値の型、引数の型および説明が記述されている。 この場合、戻り値は void 型で説明は Set the position of the model frame in world coordinates. とあり、 3つの引数でワールド座標系におけるモデルフレームの位置を指定する関数であることを示している。

../../_images/agx_api_reference_search_setPosition.png

SDK内の全文検索

特定のAPIがデモやチュートリアルでどのように使われているか確認したいことがある。 この場合、SDK( AGX_DIR 配下)を全文検索して調べる。

findとxargsコマンドを使う(Linux)

次のコマンドで検索する。

$ find /opt/Algoryx/AGX-2.32.0.0 -type f | grep .cpp | xargs grep -n "getMotor1D()->setSpeed"
/opt/Algoryx/AGX-2.32.0.0/tutorials/tutorial_car.cpp:172:      m_backRight->getDrivingHinge()->getMotor1D()->setSpeed( -100 );
/opt/Algoryx/AGX-2.32.0.0/tutorials/tutorial_car.cpp:173:      m_backLeft->getDrivingHinge()->getMotor1D()->setSpeed( 100 );
/opt/Algoryx/AGX-2.32.0.0/tutorials/tutorial_car.cpp:223:      m_backRight->getDrivingHinge()->getMotor1D()->setSpeed( -getMaxWheelRPM( m_input->getGear() ) );
# 省略

Visual Studio Code

Visual Studio Code (VS Code)はLinux、Windowsなどのクロスプラットフォームに対応している。 <AGX_DIR> フォルダをVS Codeで開き、アクティビティバーの 検索 を選択し、検索ボックスにキーワードを入力する。

../../_images/full_text_search_vscode.png

Windowsのエクスプローラ

注釈

検索速度が遅く、ファイルをテキストエディタで開いて確認する必要があり手間がかかる。お薦めしない。

エクスプローラのメニューバーから 検索 ‣ 詳細オプション を選択し、「ファイルコンテンツ」を有効にする。 <AGX_DIR> フォルダを開き、検索フォームにキーワードを入力すると、結果が表示される。

../../_images/full_text_search_windows1.png ../../_images/full_text_search_windows2.png