X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FGEOMImpl%2FGEOMImpl_IInsertOperations.cxx;h=2a83dd58de47f54c4b43d3ac11d040c41cb8b378;hb=c7f598c0d84c3068aecad121357f07c8608eaacb;hp=efb8255fa11b2e6e157c705ffe7817e0fd29dd60;hpb=004197ec827d52331f0d529202eb4e52a1c4388f;p=modules%2Fgeom.git diff --git a/src/GEOMImpl/GEOMImpl_IInsertOperations.cxx b/src/GEOMImpl/GEOMImpl_IInsertOperations.cxx index efb8255fa..2a83dd58d 100644 --- a/src/GEOMImpl/GEOMImpl_IInsertOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IInsertOperations.cxx @@ -1,29 +1,40 @@ -// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com #include #include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + #include "utilities.h" #include #include @@ -33,33 +44,25 @@ #include #include -#include -#include - -#include -#include -#include - -#include -#include - -#include - #include #include #include #include + +#if OCC_VERSION_LARGE > 0x06040000 // Porting to OCCT6.5.1 +#include +#else #include +#endif #include #include // CAREFUL ! position of this file is critic : see Lucien PIGNOLONI / OCC //============================================================================= /*! - * constructor: + * constructor */ //============================================================================= - GEOMImpl_IInsertOperations::GEOMImpl_IInsertOperations(GEOM_Engine* theEngine, int theDocID) : GEOM_IOperations(theEngine, theDocID) { @@ -71,20 +74,17 @@ GEOMImpl_IInsertOperations::GEOMImpl_IInsertOperations(GEOM_Engine* theEngine, i * destructor */ //============================================================================= - GEOMImpl_IInsertOperations::~GEOMImpl_IInsertOperations() { MESSAGE("GEOMImpl_IInsertOperations::~GEOMImpl_IInsertOperations"); } - - //============================================================================= /*! * MakeCopy */ //============================================================================= -Handle(GEOM_Object) GEOMImpl_IInsertOperations::MakeCopy(Handle(GEOM_Object) theOriginal) +Handle(GEOM_Object) GEOMImpl_IInsertOperations::MakeCopy (Handle(GEOM_Object) theOriginal) { SetErrorCode(KO); @@ -108,7 +108,7 @@ Handle(GEOM_Object) GEOMImpl_IInsertOperations::MakeCopy(Handle(GEOM_Object) the //Compute the Copy value try { -#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 +#if OCC_VERSION_LARGE > 0x06010000 OCC_CATCH_SIGNALS; #endif if (!GetSolver()->ComputeFunction(aFunction)) { @@ -146,8 +146,11 @@ void GEOMImpl_IInsertOperations::Export Handle(GEOM_Function) aRefFunction = theOriginal->GetLastFunction(); if (aRefFunction.IsNull()) return; //There is no function which creates an object to be exported + //Add a new result object + Handle(GEOM_Object) result = GetEngine()->AddObject(GetDocID(), GEOM_IMPORT); + //Add an Export function - Handle(GEOM_Function) aFunction = theOriginal->AddFunction(GEOMImpl_ExportDriver::GetID(), EXPORT_SHAPE); + Handle(GEOM_Function) aFunction = result->AddFunction(GEOMImpl_ExportDriver::GetID(), EXPORT_SHAPE); if (aFunction.IsNull()) return; //Check if the function is set correctly @@ -168,7 +171,7 @@ void GEOMImpl_IInsertOperations::Export //Perform the Export try { -#if (OCC_VERSION_MAJOR << 16 | OCC_VERSION_MINOR << 8 | OCC_VERSION_MAINTENANCE) > 0x060100 +#if OCC_VERSION_LARGE > 0x06010000 OCC_CATCH_SIGNALS; #endif if (!GetSolver()->ComputeFunction(aFunction)) { @@ -223,11 +226,10 @@ Handle(GEOM_Object) GEOMImpl_IInsertOperations::Import aCI.SetFileName(theFileName); aCI.SetFormatName(theFormatName); aCI.SetPluginName(aLibName); - //cout<<"IIO: theFormatName = "< 0x060100 +#if OCC_VERSION_LARGE > 0x06010000 OCC_CATCH_SIGNALS; #endif if (!GetSolver()->ComputeFunction(aFunction)) { @@ -243,13 +245,14 @@ Handle(GEOM_Object) GEOMImpl_IInsertOperations::Import //Make a Python command if( theFormatName != "IGES_UNIT" ) { - GEOM::TPythonDump(aFunction) << result << " = geompy.Import(\"" + GEOM::TPythonDump(aFunction) << result << " = geompy.ImportFile(\"" << theFileName.ToCString() << "\", \"" << theFormatName.ToCString() << "\")"; } SetErrorCode(OK); - if( theFormatName == "IGES_UNIT" ) { + // OLD CODE: begin + if (theFormatName == "IGES_UNIT") { TopoDS_Shape S = aFunction->GetValue(); TopoDS_Vertex V = TopoDS::Vertex(S); gp_Pnt P = BRep_Tool::Pnt(V); @@ -262,10 +265,42 @@ Handle(GEOM_Object) GEOMImpl_IInsertOperations::Import //cout<<"IIO: aUnitName = "<String(); + + aValue = GEOMImpl_ImportDriver::ReadValue(theFileName, aLibName, theParameterName, anError); + if (anError.IsEmpty()) + SetErrorCode(OK); + else + SetErrorCode(anError.ToCString()); + + return aValue; +} + //============================================================================= /*! * ImportTranslators @@ -552,7 +587,11 @@ int GEOMImpl_IInsertOperations::LoadTexture(const TCollection_AsciiString& theTe if (theTextureFile.IsEmpty()) return 0; +#if OCC_VERSION_LARGE > 0x06040000 // Porting to OCCT6.5.1 + Handle(TColStd_HArray1OfByte) aTexture; +#else Handle(TDataStd_HArray1OfByte) aTexture; +#endif FILE* fp = fopen(theTextureFile.ToCString(), "r"); if (!fp) return 0; @@ -594,7 +633,12 @@ int GEOMImpl_IInsertOperations::LoadTexture(const TCollection_AsciiString& theTe if (bytedata.empty() || bytedata.size() != lines.size()*lenbytes) return 0; - aTexture = new TDataStd_HArray1OfByte(1, lines.size()*lenbytes); +#if OCC_VERSION_LARGE > 0x06040000 // Porting to OCCT6.5.1 + aTexture = new TColStd_HArray1OfByte (1, lines.size()*lenbytes); +#else + aTexture = new TDataStd_HArray1OfByte (1, lines.size()*lenbytes); +#endif + std::list::iterator bdit; int i; for (i = 1, bdit = bytedata.begin(); bdit != bytedata.end(); ++bdit, ++i) @@ -606,7 +650,11 @@ int GEOMImpl_IInsertOperations::LoadTexture(const TCollection_AsciiString& theTe } int GEOMImpl_IInsertOperations::AddTexture(int theWidth, int theHeight, +#if OCC_VERSION_LARGE > 0x06040000 // Porting to OCCT6.5.1 + const Handle(TColStd_HArray1OfByte)& theTexture) +#else const Handle(TDataStd_HArray1OfByte)& theTexture) +#endif { SetErrorCode(KO); int aTextureId = GetEngine()->addTexture(GetDocID(), theWidth, theHeight, theTexture); @@ -614,12 +662,21 @@ int GEOMImpl_IInsertOperations::AddTexture(int theWidth, int theHeight, return aTextureId; } +#if OCC_VERSION_LARGE > 0x06040000 // Porting to OCCT6.5.1 +Handle(TColStd_HArray1OfByte) GEOMImpl_IInsertOperations::GetTexture(int theTextureId, +#else Handle(TDataStd_HArray1OfByte) GEOMImpl_IInsertOperations::GetTexture(int theTextureId, +#endif int& theWidth, int& theHeight) { SetErrorCode(KO); +#if OCC_VERSION_LARGE > 0x06040000 // Porting to OCCT6.5.1 + Handle(TColStd_HArray1OfByte) aTexture; +#else Handle(TDataStd_HArray1OfByte) aTexture; +#endif + theWidth = theHeight = 0; TCollection_AsciiString aFileName;