From 1a3ba4780bd0230b426058b332c01d67c0fc0050 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Thu, 14 Jan 2016 18:03:37 +0000 Subject: [PATCH] test implementation of get{Vertex,Edge,Face,Region}ForOCCShape --- Common/DefaultOptions.h | 4 ++-- Geo/GModel.h | 4 ++++ Geo/GModelIO_OCC.cpp | 48 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index a50ddc3b95..6c51538984 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 e5e4309341..7fc00f5e61 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 060e18405e..a74091f88d 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 -- GitLab