8 from PyQt5.QtCore import *
9 from PyQt5.QtGui import *
11 def getChildrenInStudy(obj):
13 Given an object published in SALOME study (for instance a GEOM object), retreive its children.
14 return a dictionary [name] --> object
16 SO = salome.myStudy.FindObjectIOR(salome.myStudy.ConvertObjectToIOR(obj))
17 childIterator = salome.myStudy.NewChildIterator(SO)
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
29 def importPolyline(document, shapeName, shapePath, suffix, iSpline, displayLevel):
32 shapeFile = os.path.join(shapePath, shapeName+".shp")
33 HYDROData_PolylineXY.ImportShapesFromFile(shapeFile)
34 shape = document.FindObjectByName(shapeName + suffix)
35 shapeType = 0 # polyline
37 shapeType = 1 # polyline
38 for i in range(shape.NbSections()):
39 shape.SetSectionType(i, shapeType)
41 shape.SetZLevel( displayLevel )
44 def importBathymetry(document, bathyName, bathyPath):
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')
55 def createImmersibleZone(document, imzName, polyLine, bathy, isImmersible, displayLevel):
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)