国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

VTK——設(shè)置交互樣式上的鼠標(biāo)回調(diào)函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了VTK——設(shè)置交互樣式上的鼠標(biāo)回調(diào)函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

函數(shù)介紹

VTKPointPickerInteractorStyle是一個(gè)自定義的交互樣式類,它是VTK庫中vtkInteractorStyleTrackballCamera類的子類。VTK(Visualization Toolkit)是一個(gè)開源的,跨平臺(tái)的庫,用于處理、渲染和視覺化科學(xué)數(shù)據(jù)。它包括一系列的類和方法用于3D計(jì)算機(jī)圖形、圖像處理和可視化。

vtkInteractorStyleTrackballCamera是VTK中的一個(gè)交互樣式類,它定義了用戶與3D場(chǎng)景交互的方式,例如:旋轉(zhuǎn)、縮放、平移等。VTKPointPickerInteractorStyle類繼承了vtkInteractorStyleTrackballCamera類,并重寫了一些方法,以自定義用戶的交互行為。


class VTKPointPickerInteractorStyle : public vtkInteractorStyleTrackballCamera
{
public:
    static VTKPointPickerInteractorStyle* New();
    vtkTypeMacro(VTKPointPickerInteractorStyle, vtkInteractorStyleTrackballCamera);

    void setObjectIndex(int index) { m_index = index; }
    int getObjectIndex() const { return m_index; }
    VTKPointPickerInteractorStyle()
    {
        LastPickedActor = NULL;
        LastPickedProperty = vtkProperty::New();
    }
    virtual ~VTKPointPickerInteractorStyle()
    {
        LastPickedProperty->Delete();
    }
    virtual void OnLeftButtonUp() override
    {
        // Forward events
        vtkInteractorStyleTrackballCamera::OnLeftButtonUp();
    }
    virtual void OnLeftButtonDown() override
    {
        int* clickPos = this->GetInteractor()->GetEventPosition();
        this->Interactor->GetPicker()->Pick(clickPos[0], clickPos[1], 0,  // always zero.
                                            this->Interactor->GetRenderWindow()->GetRenderers()->GetFirstRenderer());

        double picked[3];
        this->Interactor->GetPicker()->GetPickPosition(picked);
//        std::cout << "Picked value: " << picked[0] << " " << picked[1] << " " << picked[2] << std::endl;

        // Forward events
        vtkInteractorStyleTrackballCamera::OnLeftButtonDown();
    }
//    virtual void OnMouseMove() override
//    {

//    }

private:
    vtkActor    *LastPickedActor;
    vtkProperty *LastPickedProperty;
    int m_index;

};

被重寫的方法還能保留之前的功能嗎?重寫一個(gè)方法會(huì)完全覆蓋父類中的該方法的實(shí)現(xiàn)。但是,可以在子類的方法中顯式調(diào)用父類的方法來保留父類的功能。

例如,在VTKPointPickerInteractorStyle類的OnLeftButtonDown方法中,在方法的最后,調(diào)用了vtkInteractorStyleTrackballCamera::OnLeftButtonDown()。這樣,就可以在執(zhí)行完VTKPointPickerInteractorStyle類的OnLeftButtonDown方法的自定義操作后,再執(zhí)行vtkInteractorStyleTrackballCamera類的OnLeftButtonDown方法。這樣做可以保證在執(zhí)行完子類的自定義操作后,還能執(zhí)行父類的操作。

設(shè)置回調(diào)

下面是用于設(shè)置回調(diào),同時(shí)為了在鼠標(biāo)點(diǎn)擊窗口時(shí)確認(rèn)當(dāng)前窗口索引,將每個(gè)窗口的索引或objectName存儲(chǔ)在類的某個(gè)成員變量中,并添加一個(gè)方法來檢索它。

class VTKPointPickerInteractorStyle : public vtkInteractorStyleTrackballCamera
{
    ...
public:
    void setObjectIndex(int index) { m_index = index; }
    int getObjectIndex() const { return m_index; }
    ...
private:
    int m_index;
};

然后在創(chuàng)建VTKPointPickerInteractorStyle對(duì)象時(shí)設(shè)置索引i。

    for(int i=0;i<8;i++){
    vtkSmartPointer<VTKPointPickerInteractorStyle> style =
        vtkSmartPointer<VTKPointPickerInteractorStyle>::New();
        style->setObjectIndex(i);

        render[i]->GetInteractor()->SetInteractorStyle(style);
    }
    

將交互樣式設(shè)置為 nullptr,也就是清除交互樣式,回到默認(rèn)的交互方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-687259.html

render[i]->GetInteractor()->SetInteractorStyle(nullptr);

到了這里,關(guān)于VTK——設(shè)置交互樣式上的鼠標(biāo)回調(diào)函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 巧用回調(diào)函數(shù)解決微信小程序與后臺(tái)數(shù)據(jù)交互出現(xiàn)的異步問題

    巧用回調(diào)函數(shù)解決微信小程序與后臺(tái)數(shù)據(jù)交互出現(xiàn)的異步問題

    ????????微信小程序端需要發(fā)送一個(gè)包含文字與圖片的表單數(shù)據(jù)給后端,我一開始的思路是 先 上傳圖片得到臨時(shí)的URL, 后 執(zhí)行POST請(qǐng)求將表單數(shù)據(jù)發(fā)送給后端,但后端只能獲取到文字,而圖片URL卻始終獲取不到。 ????????注意看我上面的思路, 一先一后 ,無形中將兩

    2024年02月16日
    瀏覽(30)
  • C# Winform鼠標(biāo)樣式設(shè)置方法

    C# Winform鼠標(biāo)樣式設(shè)置方法

    在 Winform 中,默認(rèn)鼠標(biāo)樣式是一個(gè)白色箭頭,移到按鈕 button 上也不變?yōu)槭种感?,不容易區(qū)分是否可以點(diǎn)擊(特別是 button 樣式不是默認(rèn)的時(shí)候)。如果鼠標(biāo)移到 button 上自動(dòng)變?yōu)槭中?,像網(wǎng)頁中的鏈接一樣,則很容易區(qū)分能否點(diǎn)擊,不管 button 樣式是否完全改變(如:樣式設(shè)

    2024年02月09日
    瀏覽(19)
  • 【VTK】基于讀取出來的 STL 模型,當(dāng)用戶點(diǎn)擊鼠標(biāo)左鍵時(shí),程序?qū)@取點(diǎn)擊位置的點(diǎn),顯示其坐標(biāo),并設(shè)置它為模型的旋轉(zhuǎn)原點(diǎn)

    【VTK】基于讀取出來的 STL 模型,當(dāng)用戶點(diǎn)擊鼠標(biāo)左鍵時(shí),程序?qū)@取點(diǎn)擊位置的點(diǎn),顯示其坐標(biāo),并設(shè)置它為模型的旋轉(zhuǎn)原點(diǎn)

    知識(shí)不是單獨(dú)的,一定是成體系的。更多我的個(gè)人總結(jié)和相關(guān)經(jīng)驗(yàn)可查閱這個(gè)專欄:Visual Studio。 基于讀取出來的 STL 模型,實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊鼠標(biāo)左鍵時(shí),程序?qū)@取點(diǎn)擊位置的點(diǎn),顯示其坐標(biāo),并設(shè)置它為模型的旋轉(zhuǎn)原點(diǎn)。 詳細(xì)流程為:點(diǎn)擊 Select 按鈕,鼠標(biāo)具備選擇的功能

    2024年02月14日
    瀏覽(34)
  • osg::Drawable類通過setDrawCallback函數(shù)設(shè)置回調(diào)函數(shù)的說明

    osg::Drawable類通過setDrawCallback函數(shù)設(shè)置回調(diào)函數(shù)的說明

    ? ? ? ?osg::Drawable類可以通過該類的setDrawCallback函數(shù)設(shè)置回調(diào)函數(shù)類對(duì)象。被設(shè)置的回調(diào)類對(duì)象必須從osg::Drawable::DrawCallback類派生,并 重寫drawImplementation函數(shù) ,以實(shí)現(xiàn)自己特定的需求。這個(gè)回調(diào)函數(shù)在每次幀事件中都會(huì)被調(diào)用(如:在幀的更新遍歷事件), 可以在該類的 drawI

    2024年02月02日
    瀏覽(16)
  • QT基礎(chǔ):event 函數(shù)重載、篩選鼠標(biāo)按壓事件、獲取鼠標(biāo)位置、右鍵顯示菜單、修改鼠標(biāo)樣式功能演示

    QT基礎(chǔ):event 函數(shù)重載、篩選鼠標(biāo)按壓事件、獲取鼠標(biāo)位置、右鍵顯示菜單、修改鼠標(biāo)樣式功能演示

    這里演示的是QT基礎(chǔ),主要包含: event 函數(shù)重載、篩選鼠標(biāo)按壓事件、獲取鼠標(biāo)位置、右鍵顯示菜單、修改鼠標(biāo)樣式等功能演示, 適合初學(xué)者食用 。 演示功能:點(diǎn)擊鼠標(biāo)左鍵、右鍵、中鍵、左右鍵同時(shí)點(diǎn)擊,輸出鼠標(biāo)當(dāng)前坐標(biāo);按下鼠標(biāo)中鍵,鼠標(biāo)樣式被替換,按下鼠標(biāo)左

    2024年02月09日
    瀏覽(22)
  • c++ 鍵盤/鼠標(biāo)交互+特殊輸入/輸出+窗口常用函數(shù)

    需要頭文件: 或: 函數(shù): 使用方法: 1.if(KEY_DOWN(某個(gè)鍵))或if(KEY_UP(某個(gè)鍵)) 檢測(cè)該鍵是否按下/未按下 2.keybd_event(某個(gè)鍵,0,0,0);或keybd_event(某個(gè)鍵,0,KEYEVENTF_KEYUP,0); 使該鍵是否按下/彈起(實(shí)際使用可參照下文鼠標(biāo)函數(shù)click_left()) 鍵碼表(替換“某個(gè)鍵”): 函數(shù): 使用方法: gx()或

    2024年02月09日
    瀏覽(41)
  • 【CSS】鼠標(biāo)移動(dòng)到元素上方顯示 / 移出盒子范圍隱藏案例 ( 子絕父相 | 顯示隱藏元素對(duì)象 | 鼠標(biāo)經(jīng)過樣式設(shè)置 | 半透明遮罩設(shè)置 )

    【CSS】鼠標(biāo)移動(dòng)到元素上方顯示 / 移出盒子范圍隱藏案例 ( 子絕父相 | 顯示隱藏元素對(duì)象 | 鼠標(biāo)經(jīng)過樣式設(shè)置 | 半透明遮罩設(shè)置 )

    這里要 在一個(gè) div 盒子上方套一層遮罩 , 遮罩就需要 使用絕對(duì)定位將其覆蓋到其它元素中 ; 子元素使用了 絕對(duì)定位 , 父元素必須使用 相對(duì)定位 ; 使用 樣式 隱藏元素 , 使用 樣式 顯示元素 ; 鼠標(biāo)經(jīng)過 鏈接 時(shí) , 顯示 鏈接 中的 one 元素 , 需要使用如下選擇器 進(jìn)行設(shè)置 ; 使用

    2024年02月10日
    瀏覽(33)
  • VTK在Windows上的安裝

    VTK在Windows上的安裝

    本章介紹在計(jì)算機(jī)系統(tǒng)上安裝VTK。在Microsoft Windows上,可以安裝預(yù)編譯的vtk.exe,也可以從源碼自行編譯vtk軟件。您可能希望了解系統(tǒng)架構(gòu),閱讀會(huì)使編譯過程更容易跟蹤。如果遇到問題,可以聯(lián)系vtkusers郵件列表。 2.1 概述 VTK在許多不同的計(jì)算機(jī)平臺(tái)上編譯和運(yùn)行。平臺(tái)指的

    2024年02月05日
    瀏覽(27)
  • C#回調(diào)函數(shù)學(xué)習(xí)1

    C#回調(diào)函數(shù)學(xué)習(xí)1

    回調(diào)函數(shù)(Callback Function)是一種函數(shù)指針,它指向的是由用戶自己定義的回調(diào)函數(shù)。我們將這個(gè)回調(diào)函數(shù)的指針作為參數(shù)傳遞給另外一個(gè)函數(shù),在這個(gè)函數(shù)工作完成后,它將通過這個(gè)回調(diào)函數(shù)的指針來回調(diào)通知調(diào)用者處理結(jié)果。 ? ? 此定義來自網(wǎng)上; 看一個(gè)例子;這是用委

    2024年02月08日
    瀏覽(18)
  • 騰訊云-云點(diǎn)播:設(shè)置視頻錄制的回調(diào)函數(shù),將騰訊錄制的音頻文件保存到本地中

    使用場(chǎng)景: 我們?cè)谑褂抿v訊的云點(diǎn)播實(shí)現(xiàn)視頻的錄制功能時(shí),需要將錄制的視頻保存到本地系統(tǒng)中時(shí)。 1、下載騰訊錄制的視頻文件 2、刪除騰訊點(diǎn)播錄制的視頻 3、設(shè)置回調(diào)函數(shù) 回調(diào)時(shí),騰訊響應(yīng)的數(shù)據(jù)格式 { ??????????? \\\'EventGroupId\\\': 3, ??????????? \\\'EventType\\\': 311,

    2024年02月13日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包