From 015aa771f0bb34d556efcf94ae51e6cdef5c8047 Mon Sep 17 00:00:00 2001 From: spo Date: Mon, 29 Jun 2015 13:03:28 +0300 Subject: [PATCH 1/1] Issue #608: Usage of OCCT in interface -- Remove OCCT from *Export interfaces --- .../ExchangePlugin_ExportFeature.cpp | 34 ++++++++----------- src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.cpp | 17 ++++++---- src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.h | 21 +++++------- src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.cpp | 4 +++ src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.h | 21 +++++------- src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.cpp | 14 +++++--- src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.h | 29 ++++++---------- 7 files changed, 65 insertions(+), 75 deletions(-) diff --git a/src/ExchangePlugin/ExchangePlugin_ExportFeature.cpp b/src/ExchangePlugin/ExchangePlugin_ExportFeature.cpp index 463774198..1cf82bb0b 100644 --- a/src/ExchangePlugin/ExchangePlugin_ExportFeature.cpp +++ b/src/ExchangePlugin/ExchangePlugin_ExportFeature.cpp @@ -9,14 +9,14 @@ #include #include -#include +#include #include +#include +#include #include #include -#include - #include #include @@ -26,10 +26,7 @@ #include #include -#include -#include #include -#include #include #include @@ -101,15 +98,11 @@ bool ExchangePlugin_ExportFeature::exportFile(const std::string& theFileName, std::shared_ptr theShape) { // retrieve the file and plugin library names - TCollection_AsciiString aFileName(theFileName.c_str()); - TCollection_AsciiString aFormatName(theFormat.c_str()); + std::string aFormatName = theFormat; if (theFormat.empty()) { // look at extension - OSD_Path aPath(aFileName); - TCollection_AsciiString anExtension = aPath.Extension(); - // ".brep" -> "BREP", TCollection_AsciiString are numbered from 1 - anExtension = anExtension.SubString(2, anExtension.Length()); - anExtension.UpperCase(); + // ".brep" -> "BREP" + std::string anExtension = GeomAlgoAPI_Tools::File_Tools::extension(theFileName); if (anExtension == "BREP" || anExtension == "BRP") { aFormatName = "BREP"; } else if (anExtension == "STEP" || anExtension == "STP") { @@ -122,22 +115,23 @@ bool ExchangePlugin_ExportFeature::exportFile(const std::string& theFileName, } // Perform the export - TCollection_AsciiString anError; + std::string anError; + TopoDS_Shape aShape(theShape->impl()); bool aResult = false; if (aFormatName == "BREP") { - aResult = BREPExport::Export(aFileName, aFormatName, aShape, anError); + aResult = BREPExport::Export(theFileName, aFormatName, aShape, anError); } else if (aFormatName == "STEP") { - aResult = STEPExport::Export(aFileName, aFormatName, aShape, anError); - } else if (aFormatName.SubString(1, 4) == "IGES") { - aResult = IGESExport::Export(aFileName, aFormatName, aShape, anError); + aResult = STEPExport::Export(theFileName, aFormatName, aShape, anError); + } else if (aFormatName.substr(0, 4) == "IGES") { + aResult = IGESExport::Export(theFileName, aFormatName, aShape, anError); } else { - anError = TCollection_AsciiString("Unsupported format ") + aFormatName; + anError = "Unsupported format " + aFormatName; } if (!aResult) { std::string aShapeError = - "An error occurred while exporting " + theFileName + ": " + anError.ToCString(); + "An error occurred while exporting " + theFileName + ": " + anError; setError(aShapeError); return false; } diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.cpp index c57b274b8..8a6c36f11 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.cpp +++ b/src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.cpp @@ -1,5 +1,9 @@ // Copyright (C) 2014-20xx CEA/DEN, EDF R&D +// File: GEOMALGOAPI_BREPExport.cpp +// Created: May 14, 2015 +// Author: Sergey POKHODENKO + #include #include "GeomAlgoAPI_Tools.h" @@ -12,12 +16,12 @@ * */ //============================================================================= -//extern "C" { namespace BREPExport { -bool Export(const TCollection_AsciiString& theFileName, - const TCollection_AsciiString&, + +bool Export(const std::string& theFileName, + const std::string&, const TopoDS_Shape& theShape, - TCollection_AsciiString& theError) + std::string& theError) { #ifdef _DEBUG std::cout << "Export BREP into file " << theFileName << std::endl; @@ -26,12 +30,11 @@ bool Export(const TCollection_AsciiString& theFileName, // Set "C" numeric locale to save numbers correctly GeomAlgoAPI_Tools::Localizer loc; - if ( !BRepTools::Write( theShape, theFileName.ToCString() ) ) { + if (!BRepTools::Write(theShape, theFileName.c_str())) { theError = "BREP Export failed"; return false; } return true; } -} -//} +} // namespace BREPExport diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.h b/src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.h index 88acbf5a1..2b51e43f7 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.h +++ b/src/GeomAlgoAPI/GeomAlgoAPI_BREPExport.h @@ -1,30 +1,27 @@ // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -/* - * GEOMALGOAPI_BREPExport.h - * - * Created on: May 14, 2015 - * Author: spo - */ +// File: GEOMALGOAPI_BREPExport.h +// Created: May 14, 2015 +// Author: Sergey POKHODENKO #ifndef GEOMALGOAPI_BREPEXPORT_H_ #define GEOMALGOAPI_BREPEXPORT_H_ #include -#include +#include + #include -#include namespace BREPExport { /// Implementation of the export BREP files algorithms GEOMALGOAPI_EXPORT -bool Export(const TCollection_AsciiString& theFileName, - const TCollection_AsciiString& theFormatName, +bool Export(const std::string& theFileName, + const std::string& theFormatName, const TopoDS_Shape& theShape, - TCollection_AsciiString& theError); + std::string& theError); -} +} // namespace BREPExport #endif /* GEOMALGOAPI_BREPEXPORT_H_ */ diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.cpp index 936dfd693..0f7182a8f 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.cpp +++ b/src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.cpp @@ -1,5 +1,9 @@ // Copyright (C) 2014-20xx CEA/DEN, EDF R&D +// File: GEOMALGOAPI_IGESExport.cpp +// Created: Dec 24, 2014 +// Author: Sergey BELASH + #include #include "GeomAlgoAPI_Tools.h" diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.h b/src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.h index 4f0f3cc34..a583ae804 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.h +++ b/src/GeomAlgoAPI/GeomAlgoAPI_IGESExport.h @@ -1,30 +1,27 @@ // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -/* - * GEOMALGOAPI_IGESExport.h - * - * Created on: Dec 24, 2014 - * Author: sbh - */ +// File: GEOMALGOAPI_IGESExport.h +// Created: Dec 24, 2014 +// Author: Sergey BELASH #ifndef GEOMALGOAPI_IGESEXPORT_H_ #define GEOMALGOAPI_IGESEXPORT_H_ #include -#include +#include + #include -#include namespace IGESExport { /// Implementation of the export IGES files algorithms GEOMALGOAPI_EXPORT -bool Export(const TCollection_AsciiString& theFileName, - const TCollection_AsciiString& theFormatName, +bool Export(const std::string& theFileName, + const std::string& theFormatName, const TopoDS_Shape& theShape, - TCollection_AsciiString& theError); + std::string& theError); -} +} // namespace IGESExport #endif /* GEOMALGOAPI_IGESEXPORT_H_ */ diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.cpp index ab2ac7931..6ec05e477 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.cpp +++ b/src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.cpp @@ -1,5 +1,9 @@ // Copyright (C) 2014-20xx CEA/DEN, EDF R&D +// File: GEOMALGOAPI_STEPExport.cpp +// Created: May 14, 2015 +// Author: Sergey POKHODENKO + #include #include "GeomAlgoAPI_Tools.h" @@ -11,13 +15,13 @@ namespace STEPExport { -bool Export(const TCollection_AsciiString& theFileName, - const TCollection_AsciiString& theFormatName, +bool Export(const std::string& theFileName, + const std::string& theFormatName, const TopoDS_Shape& theShape, - TCollection_AsciiString& theError) + std::string& theError) { #ifdef _DEBUG - std::cout << "Export STEP into file " << theFileName.ToCString() << std::endl; + std::cout << "Export STEP into file " << theFileName << std::endl; #endif try @@ -34,7 +38,7 @@ bool Export(const TCollection_AsciiString& theFileName, status = aWriter.Transfer( theShape, STEPControl_AsIs ); //VRV: OCC 4.0 migration if( status == IFSelect_RetDone ) - status = aWriter.Write( theFileName.ToCString() ); + status = aWriter.Write( theFileName.c_str() ); // Return previous locale if( status == IFSelect_RetDone ) diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.h b/src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.h index e05a59ff1..09fa129e1 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.h +++ b/src/GeomAlgoAPI/GeomAlgoAPI_STEPExport.h @@ -1,36 +1,27 @@ // Copyright (C) 2014-20xx CEA/DEN, EDF R&D -/* - * GEOMALGOAPI_STEPExport.h - * - * Created on: May 14, 2015 - * Author: spo - */ +// File: GEOMALGOAPI_STEPExport.h +// Created: May 14, 2015 +// Author: Sergey POKHODENKO #ifndef GEOMALGOAPI_STEPEXPORT_H_ #define GEOMALGOAPI_STEPEXPORT_H_ #include -#include -#include +#include + #include -#include namespace STEPExport { -/// Implementation of the export parameter from the STEP file -GEOMALGOAPI_EXPORT -Handle(TCollection_HAsciiString) GetValue(const TCollection_AsciiString& theFileName, - const TCollection_AsciiString& theParameterName, - TCollection_AsciiString& theError); - /// Implementation of the export STEP files algorithms GEOMALGOAPI_EXPORT -bool Export(const TCollection_AsciiString& theFileName, - const TCollection_AsciiString& theFormatName, +bool Export(const std::string& theFileName, + const std::string& theFormatName, const TopoDS_Shape& theShape, - TCollection_AsciiString& theError); -} + std::string& theError); + +} // namespace STEPExport #endif /* GEOMALGOAPI_STEPEXPORT_H_ */ -- 2.30.2