/************* * DESCRIPTION: create mesh dialog * INPUT: ID dialog ID * OUTPUT: - *************/ void CDoc::CreateMesh(int ID) { UNDO_CREATE *pUndo; MESH *pMesh; BOOL bErr; nDialogID = ID; CCMeshDlg dialog; if (dialog.DoModal() == IDOK) { pMesh = new MESH; if (pMesh) { pMesh->selected = TRUE; pMesh->surf = new SURFACE; if (pMesh->surf) { switch (nDialogID) { case IDD_CUBE: bErr = pMesh->CreateCube(&dialog.m_vSize); break; case IDD_TORUS: bErr = pMesh->CreateTorus(dialog.m_Radius, dialog.m_Thickness, dialog.m_nDivs, dialog.m_nSlices); break; case IDD_SPHERE: bErr = pMesh->CreateSphere(dialog.m_Radius, dialog.m_nDivs, dialog.m_nSlices); break; case IDD_TUBE: bErr = pMesh->CreateTube(dialog.m_Radius, dialog.m_Height, dialog.m_nDivs, dialog.m_nSlices, dialog.m_bClosedBottom, dialog.m_bClosedTop); break; case IDD_PLANE: bErr = pMesh->CreatePlane(&dialog.m_vSize, dialog.m_nXDivs, dialog.m_nZDivs); break; case IDD_CONE: bErr = pMesh->CreateCone(dialog.m_Radius, dialog.m_Height, dialog.m_nDivs, dialog.m_nSlices, dialog.m_bClosedBottom); break; } if (!bErr) delete pMesh; else { DeselectAll(); pMesh->Append(); pMesh->IsFirstSelected(); pUndo = new UNDO_CREATE; if (pUndo) { if (pUndo->AddCreated(pMesh)) pUndo->Add(); else delete pUndo; } sciBrowserBuild(); } } else delete pMesh; } } sciRedraw(); }