diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index a50ddc3b950ab52ea6f3d5d011ee183721849fbd..6c5153898494f6bab87ad8a8e3382fa8a4ebc5df 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -1033,8 +1033,8 @@ StringXNumber MeshOptions_Number[] = { { F|O, "NewtonConvergenceTestXYZ" , opt_mesh_newton_convergence_test_xyz , 0. , "Force inverse surface mapping algorithm (Newton-Raphson) to converge in real coordinates (experimental)" }, { F|O, "Format" , opt_mesh_file_format , FORMAT_AUTO , - "Mesh output format (1=msh, 2=unv, 10=automatic, 19=vrml, 27=stl, 30=mesh, 31=bdf, " - "32=cgns, 33=med, 40=ply2)" }, + "Mesh output format (1=msh, 2=unv, 10=automatic, 19=vrml, 26=pos statistics, 27=stl, " + "30=mesh, 31=bdf, 32=cgns, 33=med, 39=inp, 40=ply2)" }, { F|O, "Hexahedra" , opt_mesh_hexahedra , 1. , "Display mesh hexahedra?" }, diff --git a/Geo/GModel.h b/Geo/GModel.h index e5e43093412365a6bfd81448bf285684cd1a6c56..7fc00f5e61ba5f7667d6dcc4f6b73869d6d68160 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -614,6 +614,10 @@ class GModel int writeOCCSTEP(const std::string &name); int writeOCCBREP(const std::string &name); int importOCCShape(const void *shape); + GVertex *getVertexForOCCShape(const void *shape); + GEdge *getEdgeForOCCShape(const void *shape); + GFace *getFaceForOCCShape(const void *shape); + GRegion *getRegionForOCCShape(const void *shape); // ACIS Model int readACISSAT(const std::string &name); diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index 060e18405e34a0125e1c0a272a91bf46a6f37818..a74091f88d03b06486915ebc7429b3fb81fcedea 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -1100,6 +1100,30 @@ int GModel::importOCCShape(const void *shape) return 1; } +GVertex* GModel::getVertexForOCCShape(const void *shape) +{ + if(!_occ_internals) return 0; + return _occ_internals->getOCCVertexByNativePtr(this, *(TopoDS_Vertex*)shape); +} + +GEdge* GModel::getEdgeForOCCShape(const void *shape) +{ + if(!_occ_internals) return 0; + return _occ_internals->getOCCEdgeByNativePtr(this, *(TopoDS_Edge*)shape); +} + +GFace* GModel::getFaceForOCCShape(const void *shape) +{ + if(!_occ_internals) return 0; + return _occ_internals->getOCCFaceByNativePtr(this, *(TopoDS_Face*)shape); +} + +GRegion* GModel::getRegionForOCCShape(const void *shape) +{ + if(!_occ_internals) return 0; + return _occ_internals->getOCCRegionByNativePtr(this, *(TopoDS_Solid*)shape); +} + #else void GModel::_deleteOCCInternals() @@ -1148,4 +1172,28 @@ int GModel::importOCCShape(const void *shape) return 0; } +GVertex* GModel::getVertexForOCCShape(const void *shape) +{ + Msg::Error("Gmsh must be compiled with Open CASCADE support to query OCC shape"); + return 0; +} + +GEdge* GModel::getEdgeForOCCShape(const void *shape) +{ + Msg::Error("Gmsh must be compiled with Open CASCADE support to query OCC shape"); + return 0; +} + +GFace* GModel::getFaceForOCCShape(const void *shape) +{ + Msg::Error("Gmsh must be compiled with Open CASCADE support to query OCC shape"); + return 0; +} + +GRegion* GModel::getRegionForOCCShape(const void *shape) +{ + Msg::Error("Gmsh must be compiled with Open CASCADE support to query OCC shape"); + return 0; +} + #endif