X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FExchangeAPI%2FExchangeAPI_Export.cpp;h=8ee3b8bd7d86114af5628b477fd5cf625e50cec3;hb=refs%2Fheads%2FV9_11_BR;hp=87f51426c68b289fc29c24d1795f526da9a9bc58;hpb=3e5f9ac99e64ed6b62dcf8d67acf825a87639f3f;p=modules%2Fshaper.git diff --git a/src/ExchangeAPI/ExchangeAPI_Export.cpp b/src/ExchangeAPI/ExchangeAPI_Export.cpp index 87f51426c..8ee3b8bd7 100644 --- a/src/ExchangeAPI/ExchangeAPI_Export.cpp +++ b/src/ExchangeAPI/ExchangeAPI_Export.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2019 CEA/DEN, EDF R&D +// Copyright (C) 2014-2023 CEA, EDF // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -53,6 +53,52 @@ ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& apply(); // finish operation to make sure the export is done on the current state of the history } +// Constructor with values for STL of selected result export. +ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& theFeature, + const std::string & theFilePath, + const ModelHighAPI_Selection& theSelectedShape, + const ModelHighAPI_Double& theDeflectionRelative, + const ModelHighAPI_Double& theDeflectionAbsolute, + const bool theIsRelative, + const bool theIsASCII) + : ModelHighAPI_Interface(theFeature) +{ + initialize(); + fillAttribute("STL", theFeature->string(ExchangePlugin_ExportFeature::EXPORT_TYPE_ID())); + fillAttribute(theFilePath, theFeature->string(ExchangePlugin_ExportFeature::STL_FILE_PATH_ID())); + + if (theIsRelative) { + fillAttribute(ExchangePlugin_ExportFeature::STL_DEFLECTION_TYPE_RELATIVE(), + theFeature->string(ExchangePlugin_ExportFeature::STL_DEFLECTION_TYPE()) ); + fillAttribute(theDeflectionRelative, + theFeature->real(ExchangePlugin_ExportFeature::STL_RELATIVE()) ); + } + else { + fillAttribute(ExchangePlugin_ExportFeature::STL_DEFLECTION_TYPE_ABSOLUTE(), + theFeature->string(ExchangePlugin_ExportFeature::STL_DEFLECTION_TYPE()) ); + fillAttribute(theDeflectionAbsolute, + theFeature->real(ExchangePlugin_ExportFeature::STL_ABSOLUTE()) ); + } + + if(theIsASCII){ + fillAttribute(ExchangePlugin_ExportFeature::STL_FILE_TYPE_ASCII(), + theFeature->string(ExchangePlugin_ExportFeature::STL_FILE_TYPE())); + } + else + { + fillAttribute(ExchangePlugin_ExportFeature::STL_FILE_TYPE_BINARY(), + theFeature->string(ExchangePlugin_ExportFeature::STL_FILE_TYPE())); + } + + fillAttribute(theSelectedShape, + theFeature->selection(ExchangePlugin_ExportFeature::STL_OBJECT_SELECTED())); + fillAttribute("STL", 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(const std::shared_ptr& theFeature, const std::string & theFilePath, const ModelHighAPI_Selection& theResult, const std::string & theAuthor, const std::string & theGeometryName) @@ -74,6 +120,7 @@ ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& } + /// Constructor with values for export in other formats than XAO. ExchangeAPI_Export::ExchangeAPI_Export(const std::shared_ptr& theFeature, const std::string & theFilePath, @@ -144,6 +191,34 @@ void ExchangeAPI_Export::dump(ModelHighAPI_Dumper& theDumper) const theDumper << ", '" << theGeometryName << "'"; theDumper << ")" << std::endl; } + else if (exportType == "STL") { + std::string aTmpSTLFile = + aBase->string(ExchangePlugin_ExportFeature::STL_FILE_PATH_ID())->value(); + correctSeparators(aTmpSTLFile); + theDumper << "exportToSTL(" << aDocName << ", '" << aTmpSTLFile << "'" ; + AttributeSelectionPtr aShapeSelected = + aBase->selection(ExchangePlugin_ExportFeature::STL_OBJECT_SELECTED()); + + theDumper<<","<< aShapeSelected; + + theDumper <<","<< stlabsolute() <<","<< stlrelative(); + + if (stldeflectionType()->value() + == ExchangePlugin_ExportFeature::STL_DEFLECTION_TYPE_RELATIVE()){ + theDumper <<","<< "True"; + } + else { + theDumper <<","<< "False"; + } + + if (stlfileType()->value() == ExchangePlugin_ExportFeature::STL_FILE_TYPE_BINARY()) { + theDumper << "False"; + } + else { + theDumper << "True"; + } + theDumper << ")" << std::endl; + } else { std::string aFilePath = aBase->string(ExchangePlugin_ExportFeature::FILE_PATH_ID())->value(); correctSeparators(aFilePath); @@ -179,9 +254,30 @@ ExportPtr exportToXAO(const std::shared_ptr & thePart, return ExportPtr(new ExchangeAPI_Export(aFeature, theFilePath, theAuthor, theGeometryName)); } +ExportPtr exportToSTL(const std::shared_ptr & thePart, + const std::string & theFilePath, + const ModelHighAPI_Selection& theSelectedShape, + const ModelHighAPI_Double& theDeflectionRelative, + const ModelHighAPI_Double& theDeflectionAbsolute, + const bool theIsRelative, + const bool theIsASCII) +{ + apply(); // finish previous operation to make sure all previous operations are done + std::shared_ptr aFeature = + thePart->addFeature(ExchangePlugin_ExportFeature::ID()); + + return ExportPtr(new ExchangeAPI_Export(aFeature, + theFilePath, + theSelectedShape, + theDeflectionRelative, + theDeflectionAbsolute, + theIsRelative, + theIsASCII)); +} + ExportPtr exportToXAO(const std::shared_ptr & thePart, const std::string & theFilePath, const ModelHighAPI_Selection& theSelectedShape, - const std::string & theAuthor, const std::string & theGeometryName) + const std::string & /*theAuthor*/, const std::string & /*theGeometryName*/) { apply(); // finish previous operation to make sure all previous operations are done std::shared_ptr aFeature =