MeshVS_Mesh 示例代码
时间: 2023-09-20 20:07:03 浏览: 109
以下是使用 MeshVS_Mesh 类创建一个简单的三角形网格并显示的示例代码:
```cpp
#include <OpenGl_GraphicDriver.hxx>
#include <V3d_View.hxx>
#include <MeshVS_Mesh.hxx>
#include <MeshVS_Drawer.hxx>
int main(int argc, char* argv[])
{
// 创建 OpenGl_GraphicDriver 对象
Handle(OpenGl_GraphicDriver) aGraphicDriver = new OpenGl_GraphicDriver();
// 创建 V3d_View 对象
Handle(V3d_Viewer) aViewer = new V3d_Viewer(aGraphicDriver, "My Viewer");
Handle(V3d_View) aView = new V3d_View(aViewer);
// 创建 MeshVS_Mesh 对象
Handle(Poly_Triangulation) aPoly = new Poly_Triangulation();
aPoly->AddNode(gp_Pnt(0, 0, 0));
aPoly->AddNode(gp_Pnt(1, 0, 0));
aPoly->AddNode(gp_Pnt(0, 1, 0));
aPoly->AddTriangle(1, 2, 3);
Handle(MeshVS_Mesh) aMesh = new MeshVS_Mesh();
aMesh->SetDisplayMode(MeshVS_DMF_Shading);
aMesh->SetPoly(aPoly);
// 创建 MeshVS_Drawer 对象
Handle(MeshVS_Drawer) aDrawer = new MeshVS_Drawer();
aDrawer->SetMesh(aMesh);
aDrawer->SetDisplayMode(MeshVS_DMF_Shading);
// 添加 MeshVS_Drawer 对象到 V3d_View 对象中
aView->SetBackground(Quantity_NOC_BLACK);
aView->SetWindow(0, 0, 500, 500);
aView->MustBeResized();
aView->SetProj(V3d_XposYnegZpos);
aViewer->SetDefaultLights();
aViewer->SetLightOn();
aView->TriedronDisplay(Aspect_TOTP_LEFT_LOWER, Quantity_NOC_GOLD, 0.1, V3d_ZBUFFER);
aView->ZFitAll();
aView->Update();
aView->Redraw();
return 0;
}
```
在上面的示例代码中,我们首先创建了一个 OpenGl_GraphicDriver 对象和一个 V3d_View 对象,然后创建了一个 Poly_Triangulation 对象来表示一个三角形网格,并将其传递给 MeshVS_Mesh 对象。接着,我们创建了一个 MeshVS_Drawer 对象,并将其添加到 V3d_View 对象中进行显示。最后,我们对 V3d_View 进行了一些设置,并使其显示出来。
阅读全文