私はgtk描画エリアウィジェットでOpenGLを使って立方体を描画しています。今私はドラッグアンドドロップなどのために選択することができるようにキューブに "クリック"のようなイベントを添付したい。 私はどのように進めるべきですか?gtk描画領域でOpenGLを使用して描画されたキューブにイベントを添付するにはどうすればいいですか?
0
A
答えて
5
OpenGLはシーングラフではありません(* gah *私は疲れていますが、もう一度やり直してください)。それはは物を描きます。 3D空間で三角形の束を与え、2Dに投影し、望みに引き寄せてから忘れてしまいます。
あなたの立方体を描画した後は、もはやOpenGLの周りには一貫性のある構造として識別されるものはありません。それはあなたのの部分に完全にです。
何がしなければならないことである。
- はあなたが
- バック変換するためにマウスイベントを使用し
- GTK GL領域にマウスイベントハンドラをインストールし描画したシーンの表現を維持しますポインタをシーン座標に変換します。基本的には、シーンに光線を「射撃」し、どこにヒットするかをテストします。幸いなことに、レイキューブの交差点をテストするのは簡単です。光線境界球テストを使用して、光線が近づいているかどうかを最初にテストすることで、速度を上げることができます。あなただけの "周りにドラッグすることはできません:それはドラッグのために選択され、ところで
をドロップすることができるようにフォローする
キーワードは
を「OpenGLのオブジェクトピッキング」されています幾何学的な構造という意味では、 "オブジェクト"を知らないので、OpenGLでは "オブジェクト"と呼ばれています。 OpenGLはオブジェクトを指定しますが、実際には抽象化されたデータソースです(テクスチャや頂点とインデックスデータのバッファなど)。操作可能なシーンを作るものはありません。
シーン内で何かを変更する場合は、OpenGLを使用して、完全にを再描画にする必要があります。
+0
+1 "OpenGLはシーングラフではありません" – Kromster
関連する問題
- 1. 描画領域に画像を描画
- 2. GTKの描画領域を更新するには
- 3. OpenGL ES 3.0でアンドリューでキューブが描画されない
- 4. timeseriesデータでggplotに領域プロットを描画するにはどうすればよいですか?
- 5. Objective-Cに線と領域のセットを描画するにはどうすればよいですか?
- 6. pygtk描画領域の再描画が高速ですか?
- 7. OpenGL ES 2.0でデプスバッファを使ってキューブを描くにはどうすればいいですか?
- 8. DataGridViewの描画で黒い領域が表示される
- 9. Gtk - 間違ったウィジェットに対して描画イベントが発生し、再描画されないウィジェット
- 10. OpenGLはフレームバッファに描画されず、ウィンドウに描画されます
- 11. KMLコンテンツの領域を描画する
- 12. フォームに線を描画するにはどうすればいいですか?
- 13. Swiftで描画されたCGContextを再描画しますか?
- 14. バビロンズの線を使ってボックス領域を描くにはどうすればいいですか?
- 15. 透明な領域を描画するのがドラッグリスナーで更新されない
- 16. アンドロイドベクトル描画領域固有
- 17. テキスト領域での描画方法は?
- 18. カスタムコントロールで新しいものを描画する前に描画したものをすべてクリアするにはどうすればよいですか?
- 19. 描画矩形コマンドでイメージ画像属性を使用するにはどうすればよいですか?
- 20. GtkDrawingArea - 描画可能にするにはどうすればいいですか?
- 21. Objective-Cを使用してカスタムビューでテキストを描画するにはどうすればよいですか?
- 22. アプリケーションにグラフを描画するにはどうすればよいですか?
- 23. iPhoneに線を描画するにはどうすればよいですか?
- 24. サブビューにテキストを描画するにはどうすればよいですか?
- 25. AdMobをキャンバスに描画するにはどうすればよいですか?
- 26. マップコントロールにルートを描画するにはどうすればよいですか?
- 27. JPanelにルーラーを描画するにはどうすればよいですか?
- 28. ビットマップにボールドテキストを描画するにはどうすればよいですか?
- 29. iTextを使用してグラフィックスをPDFに描画するにはどうすればよいですか?
- 30. scenekitにSCNNodeRendererDelegateでOpenGLを使用して描画する方法
[OpenGLでファセットを選択する最も簡単な方法は何ですか?](http://stackoverflow.com/questions/513188/whats-the-easiest-way-to-pick-a-facet-in- OpenGL) – datenwolf