diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index 83c327154adb3df54de0c5180b2dcc94302326e2..a18d52b7570f88777f4d58aedfe3398c47bd0ea3 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -2773,6 +2773,7 @@ void OCC_Internals::fillet(std::vector<TopoDS_Edge> &edgesToFillet, // FIXME ***************** END OF WILL BE REMOVED ************************ +#endif void GModel::_createOCCInternals() { @@ -2855,7 +2856,11 @@ int GModel::importOCCShape(const void *shape) if(!_occ_internals) _occ_internals = new OCC_Internals; std::vector<int> tags[4]; +#if defined(HAVE_OCC) _occ_internals->importShapes((TopoDS_Shape*)shape, false, tags); +#else + Msg::Error("Gmsh requires OpenCASCADE to import TopoDS_Shape"); +#endif _occ_internals->synchronize(this); snapVertices(); SetBoundingBox(); @@ -2865,106 +2870,39 @@ int GModel::importOCCShape(const void *shape) GVertex* GModel::getVertexForOCCShape(const void *shape) { if(!_occ_internals) return 0; +#if defined(HAVE_OCC) return _occ_internals->getOCCVertexByNativePtr(this, *(TopoDS_Vertex*)shape); +#else + return 0; +#endif } GEdge* GModel::getEdgeForOCCShape(const void *shape) { if(!_occ_internals) return 0; +#if defined(HAVE_OCC) return _occ_internals->getOCCEdgeByNativePtr(this, *(TopoDS_Edge*)shape); +#else + return 0; +#endif } GFace* GModel::getFaceForOCCShape(const void *shape) { if(!_occ_internals) return 0; +#if defined(HAVE_OCC) return _occ_internals->getOCCFaceByNativePtr(this, *(TopoDS_Face*)shape); +#else + return 0; +#endif } GRegion* GModel::getRegionForOCCShape(const void *shape) { if(!_occ_internals) return 0; +#if defined(HAVE_OCC) return _occ_internals->getOCCRegionByNativePtr(this, *(TopoDS_Solid*)shape); -} - #else - -void GModel::_createOCCInternals() -{ -} - -void GModel::_deleteOCCInternals() -{ -} - -int GModel::importOCCInternals() -{ return 0; -} - -int GModel::readOCCBREP(const std::string &fn) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to load '%s'", - fn.c_str()); - return 0; -} - -int GModel::readOCCSTEP(const std::string &fn) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to load '%s'", - fn.c_str()); - return 0; -} - -int GModel::readOCCIGES(const std::string &fn) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to load '%s'", - fn.c_str()); - return 0; -} - -int GModel::writeOCCBREP(const std::string &fn) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to write '%s'", - fn.c_str()); - return 0; -} - -int GModel::writeOCCSTEP(const std::string &fn) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to write '%s'", - fn.c_str()); - return 0; -} - -int GModel::importOCCShape(const void *shape) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to import " - "a TopoDS_Shape"); - return 0; -} - -GVertex* GModel::getVertexForOCCShape(const void *shape) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to query OCC shape"); - return 0; -} - -GEdge* GModel::getEdgeForOCCShape(const void *shape) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to query OCC shape"); - return 0; -} - -GFace* GModel::getFaceForOCCShape(const void *shape) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to query OCC shape"); - return 0; -} - -GRegion* GModel::getRegionForOCCShape(const void *shape) -{ - Msg::Error("Gmsh must be compiled with OpenCASCADE support to query OCC shape"); - return 0; -} - #endif +} diff --git a/Geo/GModelIO_OCC.h b/Geo/GModelIO_OCC.h index e60dbb0eb3fcd0c2544566983dd56da499592a63..b77c1388d18c07ce676942797c8fc79d16711b77 100644 --- a/Geo/GModelIO_OCC.h +++ b/Geo/GModelIO_OCC.h @@ -7,6 +7,7 @@ #define _GMODELIO_OCC_H_ #include "GmshConfig.h" +#include "GmshMessage.h" #include "GModel.h" #include "OCCIncludes.h" @@ -313,8 +314,14 @@ public: void copy(std::vector<int> inTags[4], std::vector<int> outTags[4]){} void remove(std::vector<int> inTags[4]){} void importShapes(const std::string &fileName, bool highestDimOnly, - std::vector<int> outTags[4], const std::string &format=""){} - void exportShapes(const std::string &fileName, const std::string &format=""){} + std::vector<int> outTags[4], const std::string &format="") + { + Msg::Error("Gmsh requires OpenCASCADE to import '%s'", fileName.c_str()); + } + void exportShapes(const std::string &fileName, const std::string &format="") + { + Msg::Error("Gmsh requires OpenCASCADE to export '%s'", fileName.c_str()); + } void synchronize(GModel *model){} };