OSG-交互

      網友投稿 755 2025-03-31

      交互過程


      viewer的主要的功能是控制場景,它是場景的核心類,如果能響應鍵盤時得到viewer,那么也可以從鍵盤的響應中控制整個場景。viewer中有一個方法,名為addEventHandler就是專門做這件事情的。他會加入一個事件處理器。于是我們就想,一定要自己寫一個事件處理器才行,這就必須要了解事件處理器的格式,只要有一個接口就可以了解它的格式,這個接口就是:osgGA::GUIEventHandler,于是我們可以寫一個類A從該類公有派生出來,即:class A:public osgGA::GUIEventHandler,在里面處理好各種操作然后加入到viewer當中,即:viewer.addEventHadler(new A(里面可以有參數));這樣就可以完成操作。

      假如類A是一個事件處理類,那么加入類A可以這樣理解,如圖3.5:

      事件類型與響應

      代碼 ? ? ? ? ? ? ? ? ? ? 值 ? ? ? ?    事件類型

      NONE ? ? ? ? ? ? ? ? ? 0 ? ? ? ? ? ?    無事件。

      PUSH ? ? ? ? ? ? ? ? ? ? 1       鼠標某鍵按下,在上面代碼28行有用到。

      RELEASE ? ?    2       鼠標某鍵彈起。

      DOUBLECLICK ?  4       鼠標某鍵雙擊。

      DRAG ?      ? 8       鼠標某鍵拖動。

      MOVE       16       鼠標移動。

      KEYDOWN    ? 32       鍵盤上某鍵按下。

      KEYUP      ? 64       鍵盤上某鍵彈起。

      FRAME ?     128    應該是鼠標每幀。沒用過。

      RESIZE      ? 256     窗口大小改變時會有的事件。

      SCROLL ?     ?512     鼠標輪滾動。

      PEN_PRESSURE ? ? ? ? 1024     手寫板的某事件?

      PEN_PROXIMITY_ENTER ? ? ? 2048   手寫板的某事件?

      PEN_PROXIMITY_LEAVE ? ? 4096   手寫板的某事件?

      CLOSE_WINDOWS    ? ? ? 8192   關閉窗口。

      QUIT_APPLICATION ?   ? ? 16384   退出程序。

      USER ?          ? ? 32768   用戶定義。

      至于為什么都用2的N次方,主要是因為它的二進制編碼只有一位是一,判斷事件時很好判斷,只要年哪位是一就可以了。

      PICK

      OSG-交互

      pick主要是通過鼠標的點擊來拾取一些物體,或者判斷鼠標所點擊的位置在哪里。Pick實現的思路如下圖所示:

      判斷射線與viewer中物體相交的方法為發出射線并相交。在OSG中有庫函數,osgViewer::View::computeIntersections他共有三個參數:第一個是x屏幕坐標,第二個是Y屏幕坐標,第三個是存放被交的結點以及相交的坐標結點路徑等等相關信息。

      判斷相交結點為我想要的那個結點:只需要判斷存放相交射線交場景的結果集中有沒有要用的結點就可以了。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:tapd甘特圖
      下一篇:無代碼開發平臺怎么做軟件(無代碼app制作平臺)
      相關文章
      亚洲成a人一区二区三区| 亚洲黄页网在线观看| 亚洲高清毛片一区二区| 亚洲一级黄色大片| 亚洲精品第一国产综合精品| 久久久亚洲精品视频| 亚洲AV无码久久| 久久99国产亚洲高清观看首页| 亚洲综合精品香蕉久久网| 久久99亚洲综合精品首页| 国产日韩成人亚洲丁香婷婷| 亚洲日韩国产一区二区三区| 亚洲人成色7777在线观看不卡| 亚洲av无码不卡私人影院| 久久精品国产亚洲AV| 大胆亚洲人体视频| 亚洲精品偷拍视频免费观看 | 亚洲精品成人图区| 久久久久亚洲AV无码观看| 亚洲精品国产肉丝袜久久| 亚洲精品无码你懂的网站| 亚洲av再在线观看| 亚洲精品99久久久久中文字幕| 亚洲国产精品成人一区| 久久精品国产亚洲AV不卡| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲精品在线播放视频| 亚洲图片激情小说| 97久久国产亚洲精品超碰热| 亚洲色成人网站WWW永久四虎| 亚洲AV无码AV男人的天堂不卡| 国产综合成人亚洲区| 亚洲无码高清在线观看| 好看的亚洲黄色经典| 91精品国产亚洲爽啪在线观看| 亚洲国产日韩在线| 亚洲狠狠婷婷综合久久| 亚洲福利中文字幕在线网址| 亚洲精品中文字幕乱码三区| 久久亚洲AV成人无码国产| 亚洲av成人一区二区三区|