X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FExchangeAPI%2FExchangeAPI_Export.cpp;h=71666dca3b28ca86cf1970627ddaff1ee5155172;hb=82beaf3018c2932ab40753f2ef7f0834b4ab43b5;hp=9a49e0b64fe7eeffcfe2032889765248fdace722;hpb=cd1812d13034bc06506bf9104a286324830e78f2;p=modules%2Fshaper.git diff --git a/src/ExchangeAPI/ExchangeAPI_Export.cpp b/src/ExchangeAPI/ExchangeAPI_Export.cpp index 9a49e0b64..71666dca3 100644 --- a/src/ExchangeAPI/ExchangeAPI_Export.cpp +++ b/src/ExchangeAPI/ExchangeAPI_Export.cpp @@ -20,37 +20,111 @@ #include "ExchangeAPI_Export.h" //-------------------------------------------------------------------------------------- +#include +#include #include +#include +#include //-------------------------------------------------------------------------------------- -void exportToFile(const std::shared_ptr & thePart, + +ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& theFeature) +: ModelHighAPI_Interface(theFeature) +{ + initialize(); +} + +/// Constructor with values for XAO export. +ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& theFeature, + const std::string & theFilePath, + const std::string & theAuthor, + const std::string & theGeometryName) +: ModelHighAPI_Interface(theFeature) +{ + initialize(); + fillAttribute("XAO", theFeature->string(ExchangePlugin_ExportFeature::EXPORT_TYPE_ID())); + fillAttribute(theFilePath, theFeature->string(ExchangePlugin_ExportFeature::XAO_FILE_PATH_ID())); + fillAttribute(theAuthor, theFeature->string(ExchangePlugin_ExportFeature::XAO_AUTHOR_ID())); + fillAttribute(theGeometryName, + theFeature->string(ExchangePlugin_ExportFeature::XAO_GEOMETRY_NAME_ID())); + fillAttribute("XAO", theFeature->string(ExchangePlugin_ExportFeature::FILE_FORMAT_ID())); + execute(); + apply(); // finish operation to make sure the export is done on the current state of the history +} + +/// Constructor with values for export in other formats than XAO. +ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& theFeature, + const std::string & theFilePath, + const std::list & theSelectionList, + const std::string & theFileFormat) +: ModelHighAPI_Interface(theFeature) +{ + initialize(); + fillAttribute("Regular", theFeature->string(ExchangePlugin_ExportFeature::EXPORT_TYPE_ID())); + fillAttribute(theFilePath, theFeature->string(ExchangePlugin_ExportFeature::FILE_PATH_ID())); + fillAttribute(theSelectionList, + theFeature->selectionList(ExchangePlugin_ExportFeature::SELECTION_LIST_ID())); + fillAttribute(theFileFormat, theFeature->string(ExchangePlugin_ExportFeature::FILE_FORMAT_ID())); + execute(); + apply(); // finish operation to make sure the export is done on the current state of the history +} + +ExchangeAPI_Export::~ExchangeAPI_Export() +{ +} + + +void ExchangeAPI_Export::dump(ModelHighAPI_Dumper& theDumper) const +{ + + FeaturePtr aBase = feature(); + const std::string& aDocName = theDumper.name(aBase->document()); + + theDumper << aBase << " = model."; + + std::string exportType = aBase->string(ExchangePlugin_ExportFeature::EXPORT_TYPE_ID())->value(); + + if (exportType == "XAO") { + std::string tmpXAOFile = aBase->string(ExchangePlugin_ExportFeature::XAO_FILE_PATH_ID())->value(); + theDumper << "exportToXAO(" << aDocName << ", '" << tmpXAOFile << "'" ; + std::string theAuthor = aBase->string(ExchangePlugin_ExportFeature::XAO_AUTHOR_ID())->value(); + if (not theAuthor.empty()) + theDumper << ", '" << theAuthor << "'"; + std::string theGeometryName = aBase->string(ExchangePlugin_ExportFeature::XAO_GEOMETRY_NAME_ID())->value(); + if (not theGeometryName.empty()) + theDumper << ", '" << theGeometryName << "'"; + theDumper << ")" << std::endl; + } + else { + theDumper << "exportToFile(" << aDocName << ", " << + aBase->string(ExchangePlugin_ExportFeature::FILE_PATH_ID()) << ", " << + aBase->selectionList(ExchangePlugin_ExportFeature::SELECTION_LIST_ID()) ; + std::string theFileFormat = aBase->string(ExchangePlugin_ExportFeature::FILE_FORMAT_ID())->value(); + if (not theFileFormat.empty()) + theDumper << ", '" << theFileFormat << "'"; + theDumper << ")" << std::endl; + } +} + +ExportPtr exportToFile(const std::shared_ptr & thePart, const std::string & theFilePath, const std::list & theSelectionList, const std::string & theFileFormat) { + apply(); // finish previous operation to make sure all previous operations are done std::shared_ptr aFeature = thePart->addFeature(ExchangePlugin_ExportFeature::ID()); - fillAttribute("Regular", aFeature->string(ExchangePlugin_ExportFeature::EXPORT_TYPE_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(); + return ExportPtr(new ExchangeAPI_Export(aFeature, theFilePath, theSelectionList, theFileFormat)); } -void exportToXAO(const std::shared_ptr & thePart, +ExportPtr exportToXAO(const std::shared_ptr & thePart, const std::string & theFilePath, const std::string & theAuthor, const std::string & theGeometryName) { + apply(); // finish previous operation to make sure all previous operations are done std::shared_ptr aFeature = thePart->addFeature(ExchangePlugin_ExportFeature::ID()); - fillAttribute("XAO", aFeature->string(ExchangePlugin_ExportFeature::EXPORT_TYPE_ID())); - fillAttribute(theFilePath, aFeature->string(ExchangePlugin_ExportFeature::XAO_FILE_PATH_ID())); - fillAttribute(theAuthor, aFeature->string(ExchangePlugin_ExportFeature::XAO_AUTHOR_ID())); - fillAttribute(theGeometryName, - aFeature->string(ExchangePlugin_ExportFeature::XAO_GEOMETRY_NAME_ID())); - fillAttribute("XAO", aFeature->string(ExchangePlugin_ExportFeature::FILE_FORMAT_ID())); - aFeature->execute(); + return ExportPtr(new ExchangeAPI_Export(aFeature, theFilePath, theAuthor, theGeometryName)); } //--------------------------------------------------------------------------------------