Adding ability of branching
This commit is contained in:
1 parent
a60f4133b5
commit
4fed309e47
1 file changed
+19
-8
@@ -46,7 +46,7 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
|
||||
self.elementDB={}
|
||||
self.savefile=''
|
||||
self.lines={}
|
||||
self.branchingID=[]
|
||||
self.branchingID={}
|
||||
|
||||
self.PL=ProtoListe(0)
|
||||
self.loadFile('Layouts/SFTest2.json')
|
||||
@@ -210,10 +210,12 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
|
||||
self.branchingID.clear()
|
||||
for key in self.elementDB.keys():
|
||||
ele = self.elementDB[key]
|
||||
if ele.branching:
|
||||
self.branchingID.append(key)
|
||||
print('Branching elements')
|
||||
print(self.branchingID)
|
||||
|
||||
if isinstance(ele,Dipole) and ele.branching:
|
||||
self.branchingID[key] = False
|
||||
print('Branching elements:')
|
||||
for key in self.branchingID.keys():
|
||||
print('ID:',key)
|
||||
|
||||
def flatten(self, node_id, case_num=1 ):
|
||||
print('Flatten beamline for case:', case_num)
|
||||
@@ -240,6 +242,7 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
|
||||
def unwrap(self, name, node_id,line,case_num):
|
||||
print('Unwrapping Line: %s' % name)
|
||||
tree=self.editor.flatten(node_id,case_num)
|
||||
secondBranch = False
|
||||
for ele in tree.path:
|
||||
self.report(ele, name)
|
||||
type = self.editor.getElementType(ele)
|
||||
@@ -251,7 +254,7 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
|
||||
name1 = subline.Name
|
||||
ref = subline.firstElementID
|
||||
if ref in self.elementDB.keys():
|
||||
self.unwrap(name + name1, ref, subline,case_num)
|
||||
secondBranch = self.unwrap(name + name1, ref, subline,case_num)
|
||||
else:
|
||||
print('Undefined reference in Line Container:', name + name1)
|
||||
elif type == 'Variable Line':
|
||||
@@ -270,8 +273,16 @@ class BeamlineEditor(QtWidgets.QMainWindow, Ui_BeamlineGUI):
|
||||
Ref='relative'
|
||||
line.append(self.elementDB[ele],sRef=sRef,Ref=Ref)
|
||||
self.elementDB[ele].Prefix=name
|
||||
if tree.primary:
|
||||
self.unwrap(name,tree.primary.node_id,line,case_num)
|
||||
if ele in self.branchingID.keys():
|
||||
if self.branchingID[ele] is True:
|
||||
return True
|
||||
if secondBranch:
|
||||
if tree.secondary:
|
||||
self.unwrap(name, tree.secondary.node_id, line, case_num)
|
||||
else:
|
||||
if tree.primary:
|
||||
self.unwrap(name,tree.primary.node_id,line,case_num)
|
||||
return False
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user