Salome HOME
04b31cf70ca36c5631772dc300986223be1f79d2
[modules/hydro.git] / src / HYDROTools / hydroGeoMeshUtils.py
1 import sys
2 import os
3 import salome
4
5 salome.salome_init()
6
7 from HYDROPy import *
8 from PyQt5.QtCore import *
9 from PyQt5.QtGui import *
10
11 def getChildrenInStudy(obj):
12     """
13     Given an object published in SALOME study (for instance a GEOM object), retreive its children.
14     return a dictionary [name] --> object
15     """
16     SO = salome.myStudy.FindObjectIOR(salome.myStudy.ConvertObjectToIOR(obj))
17     childIterator = salome.myStudy.NewChildIterator(SO)
18     children = {}
19     while childIterator.More():
20         childItem = childIterator.Value()
21         print("item", childItem)
22         itemName = childItem.GetName()
23         itemID = childItem.GetID()
24         itemObj = salome.IDToObject(str(itemID))
25         children[itemName] = itemObj
26         childIterator.Next()
27     return children
28
29 def importPolyline(document, shapeName, shapePath, suffix, iSpline, displayLevel):
30     """
31     """
32     shapeFile = os.path.join(shapePath, shapeName+".shp")
33     HYDROData_PolylineXY.ImportShapesFromFile(shapeFile)
34     shape = document.FindObjectByName(shapeName + suffix)
35     shapeType = 0 # polyline
36     if iSpline:
37         shapeType = 1 # polyline
38     for i in range(shape.NbSections()):
39         shape.SetSectionType(i, shapeType)
40         shape.Update()
41     shape.SetZLevel( displayLevel )
42     return shape
43
44 def importBathymetry(document, bathyName, bathyPath):
45     """
46     """
47     bathy = document.CreateObject(KIND_BATHYMETRY)
48     bathy.SetName(bathyName)
49     bathy.SetAltitudesInverted(0)
50     if not(bathy.ImportFromFile( os.path.join(bathyPath, bathyName + '.xyz' ))):
51         raise ValueError('problem while loading bathymetry')
52     bathy.Update()
53     return bathy
54
55 def createImmersibleZone(document, imzName, polyLine, bathy, isImmersible, displayLevel):
56     """
57     """
58     imz = document.CreateObject( KIND_IMMERSIBLE_ZONE )
59     imz.SetName( imzName )
60     imz.SetZLevel( displayLevel )
61     imz.SetAltitudeObject( bathy )
62     imz.SetPolyline( polyLine )
63     imz.SetIsSubmersible(isImmersible)
64     imz.Update()
65     return imz