+// 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"
#include "HYDROData_SplittedShapesGroup.h"
#include "HYDROData_Region.h"
#include "HYDROData_Tool.h"
+#include "HYDROData_GeomTool.h"
#include <GEOMBase.h>
#define EXPORT_NAME "HYDRO_" + GetName()
-#include <SALOME_NamingService.hxx>
-#include <SALOME_LifeCycleCORBA.hxx>
-
-
-
-
-
IMPLEMENT_STANDARD_HANDLE(HYDROData_CalculationCase, HYDROData_Entity)
IMPLEMENT_STANDARD_RTTIEXT(HYDROData_CalculationCase, HYDROData_Entity)
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;
}
}
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 );
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
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 ) );
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();
// 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(),