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 importPolylines(document, shapeFile, shapeName, iSpline, displayLevel):
32 HYDROData_PolylineXY.ImportShapesFromFile(shapeFile)
33 shapeType = 0 # polyline
35 shapeType = 1 # polyline
40 shapeNameIndex = shapeName + "_%d" % index
43 shape = document.FindObjectByName(shapeNameIndex)
48 for i in range(shape.NbSections()):
49 shape.SetSectionType(i, shapeType)
51 shape.SetZLevel( displayLevel )
55 def importBathymetry(document, bathyName, bathyPath):
58 bathy = document.CreateObject(KIND_BATHYMETRY)
59 bathy.SetName(bathyName)
60 bathy.SetAltitudesInverted(0)
61 if not(bathy.ImportFromFile( os.path.join(bathyPath, bathyName + '.xyz' ))):
62 raise ValueError('problem while loading bathymetry')
66 def createImmersibleZone(document, imzName, polyLine, bathy, isImmersible, displayLevel):
69 imz = document.CreateObject( KIND_IMMERSIBLE_ZONE )
70 imz.SetName( imzName )
71 imz.SetZLevel( displayLevel )
72 imz.SetAltitudeObject( bathy )
73 imz.SetPolyline( polyLine )
74 imz.SetIsSubmersible(isImmersible)