X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_CalculationCase.cxx;h=27b5294e20ee979189e9cc1616381ccf573b870c;hb=f7c005b67e48ec7bac99c566fb4f34215ec1a4b1;hp=b9c17a895048e8d78dcd6ff0f56b8d03f421540f;hpb=4b4f8231de194f5830fe198d00b9c687de081a4a;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_CalculationCase.cxx b/src/HYDROData/HYDROData_CalculationCase.cxx index b9c17a89..27b5294e 100644 --- a/src/HYDROData/HYDROData_CalculationCase.cxx +++ b/src/HYDROData/HYDROData_CalculationCase.cxx @@ -1,3 +1,24 @@ +// Copyright (C) 2007-2015 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 +// +// 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, or (at your option) any later version. +// +// 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 +// #include "HYDROData_CalculationCase.h" @@ -11,6 +32,7 @@ #include "HYDROData_SplittedShapesGroup.h" #include "HYDROData_Region.h" #include "HYDROData_Tool.h" +#include "HYDROData_GeomTool.h" #include @@ -48,13 +70,6 @@ #define EXPORT_NAME "HYDRO_" + GetName() -#include -#include - - - - - IMPLEMENT_STANDARD_HANDLE(HYDROData_CalculationCase, HYDROData_Entity) IMPLEMENT_STANDARD_RTTIEXT(HYDROData_CalculationCase, HYDROData_Entity) @@ -180,19 +195,9 @@ QStringList HYDROData_CalculationCase::DumpToPython( MapOfTreatedObjects& theTre if ( aRegion.IsNull() ) continue; - QString aRegionName = aRegion->GetName(); - - HYDROData_SequenceOfObjects aZones = aRegion->GetZones(); - HYDROData_SequenceOfObjects::Iterator aZonesIter( aZones ); - for ( ; aZonesIter.More(); aZonesIter.Next() ) - { - Handle(HYDROData_Zone) aRegZone = - Handle(HYDROData_Zone)::DownCast( aZonesIter.Value() ); - if ( aRegZone.IsNull() ) - continue; - - // TODO - } + theTreatedObjects.insert( aRegion->GetName(), aRegion ); + QStringList aRegDump = aRegion->DumpToPython( theTreatedObjects ); + aResList << aRegDump; } } @@ -228,6 +233,7 @@ void HYDROData_CalculationCase::DumpSampleMeshing( QStringList& theResList, theResList << "# Meshing"; theResList << "import SMESH, SALOMEDS"; theResList << "from salome.smesh import smeshBuilder"; + theResList << "from salome.geom import geomBuilder"; theResList << QString( "smesh = smeshBuilder.New( %1 )" ).arg( theStudyName ); theResList << QString( "%1 = smesh.Mesh( %2 )" ).arg( theMeshName ).arg( theGeomShapeName ); @@ -244,6 +250,16 @@ void HYDROData_CalculationCase::DumpSampleMeshing( QStringList& theResList, theResList << "smesh.SetName( Max_Size_1, 'Max Size_1' )"; theResList << "smesh.SetName( Max_Element_Area_1, 'Max. Element Area_1' )"; theResList << QString( "smesh.SetName( %1.GetMesh(), '%1' )" ).arg( theMeshName ); + + theResList << ""; + theResList << "# Greate SMESH groups"; + theResList << QString( "geompy = geomBuilder.New( %1 )" ).arg( theStudyName ); + theResList << QString( "geom_groups = geompy.GetGroups( %1 )" ).arg( theGeomShapeName ); + theResList << QString( "for group in geom_groups:" ); + theResList << QString( " smesh_group = %1.GroupOnGeom(group, group.GetName(), SMESH.EDGE)" ) + .arg( theMeshName ); + theResList << QString( " smesh.SetName(smesh_group, group.GetName())" ); + theResList << QString( " print \"SMESH group '%s': %s\" % (smesh_group.GetName(), smesh_group)" ); } HYDROData_SequenceOfObjects HYDROData_CalculationCase::GetAllReferenceObjects() const @@ -879,6 +895,7 @@ Handle(HYDROData_Region) HYDROData_CalculationCase::addNewRegion( const Handle(H bool isPrefix ) { TDF_Label aNewLab = myLab.FindChild( DataTag_ChildRegion ).NewChild(); + int aTag = aNewLab.Tag(); Handle(HYDROData_Region) aNewRegion = Handle(HYDROData_Region)::DownCast( HYDROData_Iterator::CreateObject( aNewLab, KIND_REGION ) ); @@ -906,18 +923,9 @@ Handle(HYDROData_SplittedShapesGroup) HYDROData_CalculationCase::addNewSplittedG QString HYDROData_CalculationCase::Export( int theStudyId ) const { - int argc = 0; - char** argv = 0; - CORBA::ORB_var anORB = CORBA::ORB_init( argc, argv, "omniORB4"/*CORBA::ORB_ID*/ ); - SALOME_NamingService aNameService( anORB ); - SALOME_LifeCycleCORBA aLCC( &aNameService ); - Engines::EngineComponent_var aComponent = aLCC.FindOrLoad_Component( "FactoryServer", "GEOM" ); - GEOM::GEOM_Gen_var aGEOMEngine = GEOM::GEOM_Gen::_narrow( aComponent ); + GEOM::GEOM_Gen_var aGEOMEngine = HYDROData_GeomTool::GetGeomGen(); + SALOMEDS::Study_var aDSStudy = HYDROData_GeomTool::GetStudyByID( theStudyId ); - CORBA::Object_var aSMObject = aNameService.Resolve("/myStudyManager"); - SALOMEDS::StudyManager_var aStudyManager = SALOMEDS::StudyManager::_narrow(aSMObject); - SALOMEDS::Study_var aDSStudy = aStudyManager->GetStudyByID( theStudyId ); - QString aGeomObjEntry; bool isOK = Export( aGEOMEngine, aDSStudy, aGeomObjEntry ); return isOK ? aGeomObjEntry : QString(); @@ -1153,7 +1161,7 @@ GEOM::GEOM_Object_ptr HYDROData_CalculationCase::publishShapeInGEOM( // Puplish the GEOM object if ( !aGeomObj->_is_nil() ) { - QString aName = GEOMBase::GetDefaultName( theName ); + QString aName = HYDROData_GeomTool::GetFreeName( theStudy, theName ); SALOMEDS::SObject_var aResultSO = theGeomEngine->PublishInStudy( theStudy, SALOMEDS::SObject::_nil(),