X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FExchangePlugin%2FExchangePlugin_ImportFeature.cpp;h=11abbb3904ae5cd475c3100ca87601e61dfb1297;hb=f1cd93fd02a54259f72e3191d037323a496b2bef;hp=a0c659805f2f72c7a7ad9441c91a3fad5107f316;hpb=b97f4d67421685f99412ee79484c7a8482da1d2e;p=modules%2Fshaper.git diff --git a/src/ExchangePlugin/ExchangePlugin_ImportFeature.cpp b/src/ExchangePlugin/ExchangePlugin_ImportFeature.cpp index a0c659805..11abbb390 100644 --- a/src/ExchangePlugin/ExchangePlugin_ImportFeature.cpp +++ b/src/ExchangePlugin/ExchangePlugin_ImportFeature.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + /* * ExchangePlugin_ImportFeature.cpp * @@ -9,13 +11,11 @@ #include #include -#include #include #include #include #include #include - #include #include #include @@ -69,7 +69,7 @@ void ExchangePlugin_ImportFeature::initAttributes() */ void ExchangePlugin_ImportFeature::execute() { - AttributeStringPtr aFilePathAttr = boost::dynamic_pointer_cast( + AttributeStringPtr aFilePathAttr = std::dynamic_pointer_cast( data()->attribute(ExchangePlugin_ImportFeature::FILE_PATH_ID())); std::string aFilePath = aFilePathAttr->value(); if(aFilePath.empty()) @@ -101,26 +101,40 @@ bool ExchangePlugin_ImportFeature::importFile(const std::string& theFileName) anUnknownLabel); // Check if shape is valid if ( aShape.IsNull() ) { - std::string aShapeError = "An error occurred while importing " + theFileName + ": "; - aShapeError = aShapeError + std::string(anError.ToCString()); - Events_Error::send(aShapeError, this); - #ifdef _DEBUG - std::cerr << aShapeError << std::endl; - #endif + const static std::string aShapeError = + "An error occurred while importing " + theFileName + ": " + anError.ToCString(); + setError(aShapeError); return false; } + // // Pass the results into the model std::string anObjectName = aPath.Name().ToCString(); data()->setName(anObjectName); - boost::shared_ptr aResult = document()->createBody(data()); - boost::shared_ptr aGeomShape(new GeomAPI_Shape); + std::shared_ptr aResultBody = document()->createBody(data()); + std::shared_ptr aGeomShape(new GeomAPI_Shape); aGeomShape->setImpl(new TopoDS_Shape(aShape)); - aResult->store(aGeomShape); - setResult(aResult); + + //LoadNamingDS of the imported shape + loadNamingDS(aGeomShape, aResultBody); + + setResult(aResultBody); return true; } +//============================================================================ +void ExchangePlugin_ImportFeature::loadNamingDS( + std::shared_ptr theGeomShape, + std::shared_ptr theResultBody) +{ + //load result + theResultBody->store(theGeomShape); + int aTag(1); + theResultBody->loadFirstLevel(theGeomShape, aTag); + theResultBody->loadDisconnectedEdges(theGeomShape, aTag); + theResultBody->loadDisconnectedVertexes(theGeomShape, aTag); +} + LibHandle ExchangePlugin_ImportFeature::loadImportPlugin(const std::string& theFormatName) { std::string aLibName = library(theFormatName + ID()); @@ -138,20 +152,15 @@ LibHandle ExchangePlugin_ImportFeature::loadImportPlugin(const std::string& theF #else anImportError = anImportError + std::string(dlerror()); #endif - Events_Error::send(anImportError, this); -#ifdef _DEBUG - std::cerr << anImportError << std::endl; -#endif + setError(anImportError); return false; } // Test loaded plugin for existence of valid "Import" function: importFunctionPointer fp = (importFunctionPointer) GetProc(anImportLib, "Import"); if (!fp) { - std::string aFunctionError = "No valid \"Import\" function was found in the " + aLibName; - Events_Error::send(aFunctionError, this); -#ifdef _DEBUG - std::cerr << aFunctionError << std::endl; -#endif + const static std::string aFunctionError = + "No valid \"Import\" function was found in the " + aLibName; + setError(aFunctionError); UnLoadLib(anImportLib) return NULL; }