美文网首页
vtk debug和release导致GetEventPosit

vtk debug和release导致GetEventPosit

作者: stnevermore | 来源:发表于2023-05-19 17:31 被阅读0次
    void DentalArchIU::GetDraggingPoints(vtkActor* sphere, CVector3d& curDragPoint, CVector3d& lastDragPoint)
    {
        if (!sphere)
            return;
        vtkRenderer* ren = m_WindowManager->GetRenderer();
        vtkRenderWindowInteractor* interactor = m_WindowManager->GetRenderWindowInteractor();
        vtkCameoInteractorStyle* iStyle = (vtkCameoInteractorStyle*)interactor->GetInteractorStyle();
        double displayPoint[3], ZDepthCurrentStay ;
    
        //calculate Z depth of current attachment stay
        CVector3d sphereCenter = sphere->GetCenter();//获取当前此附件的中心点
        //把世界坐标系变换到显示坐标系,因为平移附件是在显示的坐标系上的工作
        iStyle->ComputeWorldToDisplay(ren, sphereCenter[0], sphereCenter[1], sphereCenter[2], displayPoint);
        ZDepthCurrentStay = displayPoint[2]; //获取附件在当前位置的Z方向的深度
    
        CVector3d temp;
        int x = interactor->GetEventPosition()[0];//mouse pos
        int y = interactor->GetEventPosition()[1];
        iStyle->ComputeDisplayToWorld(ren, x, y, ZDepthCurrentStay, temp.point);
    
        x = interactor->GetLastEventPosition()[0];
        y = interactor->GetLastEventPosition()[1];
        iStyle->ComputeDisplayToWorld(ren, x, y, ZDepthCurrentStay, lastDragPoint.point);
        curDragPoint = temp; //如果不在这里赋值, 在release下面,这个curDragPoint 会被赋值为不定值,很奇怪
    }
    

    相关文章

      网友评论

          本文标题:vtk debug和release导致GetEventPosit

          本文链接:https://www.haomeiwen.com/subject/falnsdtx.html