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
38 shape = document.FindObjectByName(shapeName) # single shape
40 for i in range(shape.NbSections()):
41 shape.SetSectionType(i, shapeType)
43 shape.SetZLevel( displayLevel )
45 index = 0 # for multiple shapes
47 shapeNameIndex = shapeName + "_%d" % index
50 shape = document.FindObjectByName(shapeNameIndex)
55 for i in range(shape.NbSections()):
56 shape.SetSectionType(i, shapeType)
58 shape.SetZLevel( displayLevel )
62 def importBathymetry(document, bathyName, bathyPath):
65 bathy = document.CreateObject(KIND_BATHYMETRY)
66 bathy.SetName(bathyName)
67 bathy.SetAltitudesInverted(0)
68 if not(bathy.ImportFromFile( os.path.join(bathyPath, bathyName + '.xyz' ))):
69 raise ValueError('problem while loading bathymetry')
73 def createImmersibleZone(document, imzName, polyLine, bathy, isImmersible, displayLevel):
76 imz = document.CreateObject( KIND_IMMERSIBLE_ZONE )
77 imz.SetName( imzName )
78 imz.SetZLevel( displayLevel )
79 imz.SetAltitudeObject( bathy )
80 imz.SetPolyline( polyLine )
81 imz.SetIsSubmersible(isImmersible)
85 def mergePolylines(document, polyName, polyLines, isConnectedBySegment = False, tolerance = 1.E-3):
88 op=HYDROData_PolylineOperator()
89 op.Merge(document, polyName, polyLines, isConnectedBySegment, tolerance)
90 shape = document.FindObjectByName(polyName)