From: vsr Date: Mon, 22 Sep 2014 07:41:20 +0000 (+0400) Subject: 0022616: [CEA 1038] Improve the quality of stl and vtk exports X-Git-Tag: V7_5_0a1~7 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=a1f6e9582ddccfe6117b2f8803c2618fa18b578f;p=modules%2Fgeom.git 0022616: [CEA 1038] Improve the quality of stl and vtk exports Additional modification to obsolete ImportFile() function, to return list of GEOM::GEOM_BaseObject, instead of list of GEOM::GEOM_Object, to properly handle fields. --- diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 149bf9674..076f4fed4 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -3720,7 +3720,7 @@ module GEOM * file length unit will be ignored (set to 'meter') and result model will be scaled. * \return List of GEOM_Object, containing the created shape and groups of materials. */ - ListOfGO ImportFile (in string theFileName, in string theFormatName); + ListOfGBO ImportFile (in string theFileName, in string theFormatName); /*! * \brief Deprecated method. Use ReadValue (from the corresponding plugin) instead. diff --git a/src/GEOM_I/GEOM_Gen_i.cc b/src/GEOM_I/GEOM_Gen_i.cc index 8069f40fe..e939d30f1 100755 --- a/src/GEOM_I/GEOM_Gen_i.cc +++ b/src/GEOM_I/GEOM_Gen_i.cc @@ -2967,7 +2967,7 @@ Engines::ListOfIdentifiers* GEOM_Gen_i::importData( aFile.write(aBuffer, aFileStream->length()); aFile.close(); - GEOM::ListOfGO_var aObjects = aInsOp->ImportFile(aFullPath.c_str(), "XAO"); + GEOM::ListOfGBO_var aObjects = aInsOp->ImportFile(aFullPath.c_str(), "XAO"); if ( aObjects->length() > 0 && aInsOp->IsDone() ) { aResult->length(aObjects->length()); diff --git a/src/GEOM_I/GEOM_IInsertOperations_i.cc b/src/GEOM_I/GEOM_IInsertOperations_i.cc index 476e29ad7..5de4d1f23 100644 --- a/src/GEOM_I/GEOM_IInsertOperations_i.cc +++ b/src/GEOM_I/GEOM_IInsertOperations_i.cc @@ -33,7 +33,7 @@ #include "Utils_ExceptHandlers.hxx" #include "GEOM_Engine.hxx" -#include "GEOM_Object.hxx" +#include "GEOM_BaseObject.hxx" #include @@ -121,11 +121,11 @@ void GEOM_IInsertOperations_i::Export * ImportFile */ //============================================================================= -GEOM::ListOfGO* GEOM_IInsertOperations_i::ImportFile +GEOM::ListOfGBO* GEOM_IInsertOperations_i::ImportFile (const char* theFileName, const char* theFormatName) { - GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO; + GEOM::ListOfGBO_var aSeq = new GEOM::ListOfGBO; //Set a not done flag GetOperations()->SetNotDone(); @@ -142,7 +142,7 @@ GEOM::ListOfGO* GEOM_IInsertOperations_i::ImportFile aSeq->length(aLength); for (Standard_Integer i = 1; i <= aLength; i++) - aSeq[i-1] = GetObject(Handle(GEOM_Object)::DownCast(aHSeq->Value(i))); + aSeq[i-1] = GetBaseObject(Handle(GEOM_BaseObject)::DownCast(aHSeq->Value(i))); return aSeq._retn(); } diff --git a/src/GEOM_I/GEOM_IInsertOperations_i.hh b/src/GEOM_I/GEOM_IInsertOperations_i.hh index e06ffa08e..4a2b4f2cc 100644 --- a/src/GEOM_I/GEOM_IInsertOperations_i.hh +++ b/src/GEOM_I/GEOM_IInsertOperations_i.hh @@ -49,8 +49,8 @@ class GEOM_I_EXPORT GEOM_IInsertOperations_i : const char* theFileName, const char* theFormatName); - GEOM::ListOfGO* ImportFile (const char* theFileName, - const char* theFormatName); + GEOM::ListOfGBO* ImportFile (const char* theFileName, + const char* theFormatName); char* ReadValue (const char* theFileName, const char* theFormatName, diff --git a/src/GEOM_I_Superv/GEOM_Superv_i.cc b/src/GEOM_I_Superv/GEOM_Superv_i.cc index 9070d8e9b..867a5c6f7 100644 --- a/src/GEOM_I_Superv/GEOM_Superv_i.cc +++ b/src/GEOM_I_Superv/GEOM_Superv_i.cc @@ -1715,15 +1715,15 @@ GEOM::GEOM_Object_ptr GEOM_Superv_i::ImportFile (const char* theFileName, beginService( " GEOM_Superv_i::ImportFile" ); MESSAGE("GEOM_Superv_i::ImportFile"); getInsOp(); - GEOM::ListOfGO* aSeq = myInsOp->ImportFile(theFileName, theFormatName); - GEOM::GEOM_Object_ptr anObj; + GEOM::ListOfGBO_var aSeq = myInsOp->ImportFile(theFileName, theFormatName); + GEOM::GEOM_Object_var anObj; if (aSeq->length() > 0) { - anObj = aSeq->operator[](0); + anObj = GEOM::GEOM_Object::_narrow(aSeq[0]); } endService( " GEOM_Superv_i::ImportFile" ); - return anObj; + return anObj._retn(); } //============================= TransformOperations ===========================