OCC旋转,缩放和平移的实现

1.首先在occview视图类里创建动作枚举类型和一些变量,

protected:
    enum CurrentAction{
        CurrentAction_Nothing,//
        CurrentAction_Panning,//平移,按住鼠标左键和右键并拖动进行平移操作
        CurrentAction_Zooming,//缩放,滚动滚轮进行缩放
        CurrentAction_Rotation//旋转,按住鼠标中间并拖动进行旋转
    };
private:
    Standard_Integer m_x;//记录平移坐标X
    Standard_Integer m_y;//记录平移坐标Y
    CurrentAction m_curremt_mode;//记录三维场景转换模式

2.在cpp文件中重写鼠标事件

void OccView::wheelEvent(QWheelEvent *event)//滚轮事件实现缩放
{
    m_view->StartZoomAtPoint(event->pos().x(),event->pos().y());
    m_view->ZoomAtPoint(0,0,event->angleDelta().y(),0);
}
void OccView::mousePressEvent(QMouseEvent *event)//鼠标案件事件,左键和右键一起按下设置为平移模式,中间建按下设置为旋转模式
{

    if(event->buttons()&Qt::LeftButton&&event->buttons()&Qt::RightButton)//event->buttons()实时更新按钮并判断;如果不加会导致左键之后,不管再按哪个键一直是平移
    {
        m_curremt_mode=CurrentAction_Panni
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值