From f8a073fb68d82b56dd25743cf4927bf5e77d6b31 Mon Sep 17 00:00:00 2001 From: spo Date: Wed, 22 Jun 2016 16:03:10 +0300 Subject: [PATCH] Add CPPHighAPI for export to XAO --- src/ExchangeAPI/ExchangeAPI_Export.cpp | 68 +++++++----------------- src/ExchangeAPI/ExchangeAPI_Export.h | 58 +++++--------------- src/PythonAPI/model/exchange/__init__.py | 2 +- 3 files changed, 33 insertions(+), 95 deletions(-) diff --git a/src/ExchangeAPI/ExchangeAPI_Export.cpp b/src/ExchangeAPI/ExchangeAPI_Export.cpp index 263f14d89..176df43cc 100644 --- a/src/ExchangeAPI/ExchangeAPI_Export.cpp +++ b/src/ExchangeAPI/ExchangeAPI_Export.cpp @@ -9,58 +9,30 @@ //-------------------------------------------------------------------------------------- #include //-------------------------------------------------------------------------------------- -ExchangeAPI_Export::ExchangeAPI_Export( - const std::shared_ptr & theFeature) -: ModelHighAPI_Interface(theFeature) +void exportToFile(const std::shared_ptr & thePart, + const std::string & theFilePath, + const std::list & theSelectionList, + const std::string & theFileFormat) { - initialize(); -} - -ExchangeAPI_Export::ExchangeAPI_Export( - const std::shared_ptr & theFeature, - const std::string & theFilePath, - const std::string & theFileFormat, - const std::list & theSelectionList) -: ModelHighAPI_Interface(theFeature) -{ - if (initialize()) { - setFilePath(theFilePath); - setFileFormat(theFileFormat); - setSelectionList(theSelectionList); - execute(); - } -} - -ExchangeAPI_Export::~ExchangeAPI_Export() -{ - -} - -//-------------------------------------------------------------------------------------- -void ExchangeAPI_Export::setFilePath(const std::string & theFilePath) -{ - fillAttribute(theFilePath, myfilePath); -} - -void ExchangeAPI_Export::setFileFormat(const std::string & theFileFormat) -{ - fillAttribute(theFileFormat, myfileFormat); + // TODO(spo): check that thePart is not empty + std::shared_ptr aFeature = thePart->addFeature(ExchangePlugin_ExportFeature::ID()); + fillAttribute(theFilePath, aFeature->string(ExchangePlugin_ExportFeature::FILE_PATH_ID())); + fillAttribute(theSelectionList, aFeature->selectionList(ExchangePlugin_ExportFeature::SELECTION_LIST_ID())); + fillAttribute(theFileFormat, aFeature->string(ExchangePlugin_ExportFeature::FILE_FORMAT_ID())); + aFeature->execute(); } -void ExchangeAPI_Export::setSelectionList( - const std::list & theSelectionList) +void exportToXAO(const std::shared_ptr & thePart, + const std::string & theFilePath, + const std::string & theAuthor, + const std::string & theGeometryName) { - fillAttribute(theSelectionList, myselectionList); + // TODO(spo): check that thePart is not empty + std::shared_ptr aFeature = thePart->addFeature(ExchangePlugin_ExportFeature::ID()); + fillAttribute(theFilePath, aFeature->string(ExchangePlugin_ExportFeature::FILE_PATH_ID())); + fillAttribute(theAuthor, aFeature->string(ExchangePlugin_ExportFeature::XAO_AUTHOR_ID())); + fillAttribute(theGeometryName, aFeature->string(ExchangePlugin_ExportFeature::XAO_GEOMETRY_NAME_ID())); + aFeature->execute(); } //-------------------------------------------------------------------------------------- -ExportPtr exportToFile( - const std::shared_ptr & thePart, - const std::string & theFilePath, - const std::string & theFileFormat, - const std::list & theSelectionList) -{ - // TODO(spo): check that thePart is not empty - std::shared_ptr aFeature = thePart->addFeature(ExchangeAPI_Export::ID()); - return ExportPtr(new ExchangeAPI_Export(aFeature, theFilePath, theFileFormat, theSelectionList)); -} diff --git a/src/ExchangeAPI/ExchangeAPI_Export.h b/src/ExchangeAPI/ExchangeAPI_Export.h index bb336c94c..9846f5cf6 100644 --- a/src/ExchangeAPI/ExchangeAPI_Export.h +++ b/src/ExchangeAPI/ExchangeAPI_Export.h @@ -20,57 +20,23 @@ //-------------------------------------------------------------------------------------- class ModelHighAPI_Selection; //-------------------------------------------------------------------------------------- -/**\class ExchangeAPI_Export - * \ingroup CPPHighAPI - * \brief Interface for Export feature +/**\ingroup CPPHighAPI + * \brief Export to file */ -class ExchangeAPI_Export : public ModelHighAPI_Interface -{ -public: - /// Constructor without values - EXCHANGEAPI_EXPORT - explicit ExchangeAPI_Export(const std::shared_ptr & theFeature); - /// Constructor with values - EXCHANGEAPI_EXPORT - ExchangeAPI_Export(const std::shared_ptr & theFeature, - const std::string & theFilePath, - const std::string & theFileFormat, - const std::list & theSelectionList); - /// Destructor - EXCHANGEAPI_EXPORT - virtual ~ExchangeAPI_Export(); - - INTERFACE_3(ExchangePlugin_ExportFeature::ID(), - filePath, ExchangePlugin_ExportFeature::FILE_PATH_ID(), ModelAPI_AttributeString, /** File path */, - fileFormat, ExchangePlugin_ExportFeature::FILE_FORMAT_ID(), ModelAPI_AttributeString, /** File format */, - selectionList, ExchangePlugin_ExportFeature::SELECTION_LIST_ID(), ModelAPI_AttributeSelectionList, /** Selection list */ - ) - - /// Set file path (without execute) - EXCHANGEAPI_EXPORT - void setFilePath(const std::string & theFilePath); - - /// Set file format (without execute) - EXCHANGEAPI_EXPORT - void setFileFormat(const std::string & theFileFormat); - - - /// Set selection list (without execute) - EXCHANGEAPI_EXPORT - void setSelectionList(const std::list & theSelectionList); -}; - -//! Pointer on Export object -typedef std::shared_ptr ExportPtr; +EXCHANGEAPI_EXPORT +void exportToFile(const std::shared_ptr & thePart, + const std::string & theFilePath, + const std::list & theSelectionList, + const std::string & theFileFormat = std::string()); /**\ingroup CPPHighAPI - * \brief Create Export feature + * \brief Export XAO */ EXCHANGEAPI_EXPORT -ExportPtr exportToFile(const std::shared_ptr & thePart, - const std::string & theFilePath, - const std::string & theFileFormat, - const std::list & theSelectionList); +void exportToXAO(const std::shared_ptr & thePart, + const std::string & theFilePath, + const std::string & theAuthor = std::string(), + const std::string & theGeometryName = std::string()); //-------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------- diff --git a/src/PythonAPI/model/exchange/__init__.py b/src/PythonAPI/model/exchange/__init__.py index af7cc78c4..29d652e52 100644 --- a/src/PythonAPI/model/exchange/__init__.py +++ b/src/PythonAPI/model/exchange/__init__.py @@ -1,4 +1,4 @@ """Package for Exchange plugin for the Parametric Geometry API of the Modeler. """ -from ExchangeAPI import addImport, exportToFile \ No newline at end of file +from ExchangeAPI import addImport, exportToFile, exportToXAO \ No newline at end of file -- 2.39.2