MeshVS_Mesh使用说明2

在1中我们完成了数据源的创建,现在可以利用DataSource来创建网格对象了。

成员函数 Standard_EXPORT void AddBuilder (const Handle(MeshVS_PrsBuilder )&Builder, const Standard_Boolean TreatAsHilighter=Standard_False)

 我们需要为Mesh添加一个MeshVS对象,这个对象可以用来显示或者选择时的绘制方式,当 TreatAsHilighter为true时为选择时的绘制方式。

 创建一个各个顶点拥有各自颜色的网格,使用MeshVS_PrsBuilder的子类MeshVS_NodalColorPrsBuilder,

 为网格对象添加数据源

 m_hMesh->SetDataSource (M);

 创建 MeshVS_NodalColorPrsBuilder,注意参数的设置,错误的参数将得不到正确的结果,可以多试几次,
 Handle_MeshVS_NodalColorPrsBuilder Prs = new MeshVS_NodalColorPrsBuilder(m_hMesh,MeshVS_DMF_NodalColorDataPrs | MeshVS_DMF_OCCMask);

 为每个顶点分配颜色,pntArray与1中的warpage中的原始顶点数据相同:

 MeshVS_DataMapOfIntegerColor colormap( pntArray.size() );

    for( int i = 1; i<= m_
pntArray .size(); i++ )
    {
        colormap.Bind(i, coloArrayr[i]);
    }

    Prs->SetColors(colormap);

   为网格添加
MeshVS_NodalColorPrsBuilder,这里我们绘制和选择使用同一个 MeshVS_NodalColorPrsBuilder对象:
    m_hMesh->AddBuilder(Prs,Standard_True);

   设置其他的属性:

    Handle_MeshVS_Drawer meshDrawer = m_hMesh->GetDrawer();

    不显示边
     meshDrawer->SetBoolean(MeshVS_DA_ShowEdges, Standard_False);

    设置拣选方式,注意参数的设置

    m_hMesh->SetMeshSelMethod(MeshVS_MSM_PRECISE );

    设置绘制模式

   m_hMesh->SetDisplayMode( MeshVS_DMF_Shading );

    最后就可以在context中display了。

  一些模式的参数需要仔细选择,文档中的就少较少,可以看看源码各个参数表示的含义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值