mirror of https://gitlab.com/pamhyr/pamhyr2
LC: Add begin and end kp and fix the convertion bug.
parent
ce1872a90f
commit
1179dd0b92
|
|
@ -161,7 +161,9 @@ class BoundaryCondition(object):
|
||||||
|
|
||||||
@timer
|
@timer
|
||||||
def convert(self, cls):
|
def convert(self, cls):
|
||||||
new = cls(name = self.name)
|
new = cls(name = self.name, status = self._status)
|
||||||
|
new.node = self.node
|
||||||
|
|
||||||
for i, _ in self.data:
|
for i, _ in self.data:
|
||||||
new.add(i)
|
new.add(i)
|
||||||
|
|
||||||
|
|
@ -171,7 +173,6 @@ class BoundaryCondition(object):
|
||||||
for ind, v in self.data:
|
for ind, v in self.data:
|
||||||
new._set_i_c_v(ind, j, v[i])
|
new._set_i_c_v(ind, j, v[i])
|
||||||
|
|
||||||
self._status.modified()
|
|
||||||
return new
|
return new
|
||||||
|
|
||||||
def move_up(self, index):
|
def move_up(self, index):
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ class BoundaryConditionList(object):
|
||||||
self._status.modified()
|
self._status.modified()
|
||||||
|
|
||||||
def new(self, lst, index):
|
def new(self, lst, index):
|
||||||
n = NotDefined()
|
n = NotDefined(status=self._status)
|
||||||
self._tabs[lst].insert(index, n)
|
self._tabs[lst].insert(index, n)
|
||||||
self._status.modified()
|
self._status.modified()
|
||||||
return n
|
return n
|
||||||
|
|
|
||||||
|
|
@ -201,6 +201,12 @@ class Reach:
|
||||||
"""
|
"""
|
||||||
return [profile.kp for profile in self.profiles]
|
return [profile.kp for profile in self.profiles]
|
||||||
|
|
||||||
|
def get_kp_min(self):
|
||||||
|
return min([profile.kp for profile in self.profiles])
|
||||||
|
|
||||||
|
def get_kp_max(self):
|
||||||
|
return max([profile.kp for profile in self.profiles])
|
||||||
|
|
||||||
|
|
||||||
# Guidelines
|
# Guidelines
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,8 @@ class LateralContribution(object):
|
||||||
self._name = name
|
self._name = name
|
||||||
self._type = ""
|
self._type = ""
|
||||||
self._edge = None
|
self._edge = None
|
||||||
|
self._begin_kp = 0.0
|
||||||
|
self._end_kp = 0.0
|
||||||
self._data = []
|
self._data = []
|
||||||
self._header = []
|
self._header = []
|
||||||
self._types = [float, float]
|
self._types = [float, float]
|
||||||
|
|
@ -51,11 +53,48 @@ class LateralContribution(object):
|
||||||
@edge.setter
|
@edge.setter
|
||||||
def edge(self, edge):
|
def edge(self, edge):
|
||||||
self._edge = edge
|
self._edge = edge
|
||||||
|
if edge is not None:
|
||||||
|
self._begin_kp = self._edge.reach.get_kp_min()
|
||||||
|
self._end_kp = self._edge.reach.get_kp_max()
|
||||||
self._status.modified()
|
self._status.modified()
|
||||||
|
|
||||||
def has_edge(self):
|
def has_edge(self):
|
||||||
return self._edge is not None
|
return self._edge is not None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def begin_kp(self):
|
||||||
|
return self._begin_kp
|
||||||
|
|
||||||
|
@begin_kp.setter
|
||||||
|
def begin_kp(self, begin_kp):
|
||||||
|
if self._edge is None:
|
||||||
|
self._begin_kp = begin_kp
|
||||||
|
else:
|
||||||
|
_min = self._edge.reach.get_kp_min()
|
||||||
|
_max = self._edge.reach.get_kp_max()
|
||||||
|
|
||||||
|
if _min <= begin_kp <= _max:
|
||||||
|
self._begin_kp = begin_kp
|
||||||
|
|
||||||
|
self._status.modified()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def end_kp(self):
|
||||||
|
return self._end_kp
|
||||||
|
|
||||||
|
@end_kp.setter
|
||||||
|
def end_kp(self, end_kp):
|
||||||
|
if self._edge is None:
|
||||||
|
self._end_kp = end_kp
|
||||||
|
else:
|
||||||
|
_min = self._edge.reach.get_kp_min()
|
||||||
|
_max = self._edge.reach.get_kp_max()
|
||||||
|
|
||||||
|
if _min <= end_kp <= _max:
|
||||||
|
self._end_kp = end_kp
|
||||||
|
|
||||||
|
self._status.modified()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def header(self):
|
def header(self):
|
||||||
return self._header.copy()
|
return self._header.copy()
|
||||||
|
|
@ -160,7 +199,11 @@ class LateralContribution(object):
|
||||||
|
|
||||||
@timer
|
@timer
|
||||||
def convert(self, cls):
|
def convert(self, cls):
|
||||||
new = cls(name = self.name)
|
new = cls(name = self.name, status = self._status)
|
||||||
|
new.edge = self.edge
|
||||||
|
new.begin_kp = self.begin_kp
|
||||||
|
new.end_kp = self.end_kp
|
||||||
|
|
||||||
for i, _ in self.data:
|
for i, _ in self.data:
|
||||||
new.add(i)
|
new.add(i)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ class LateralContributionList(object):
|
||||||
self._status.modified()
|
self._status.modified()
|
||||||
|
|
||||||
def new(self, lst, index):
|
def new(self, lst, index):
|
||||||
n = NotDefined()
|
n = NotDefined(status=self._status)
|
||||||
self._tabs[lst].insert(index, n)
|
self._tabs[lst].insert(index, n)
|
||||||
self._status.modified()
|
self._status.modified()
|
||||||
return n
|
return n
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,6 @@ class RiverReach(Edge):
|
||||||
|
|
||||||
class River(Graph):
|
class River(Graph):
|
||||||
def __init__(self, status=None):
|
def __init__(self, status=None):
|
||||||
print(status)
|
|
||||||
super(River, self).__init__(status=status)
|
super(River, self).__init__(status=status)
|
||||||
|
|
||||||
# Replace Node and Edge ctor by custom ctor
|
# Replace Node and Edge ctor by custom ctor
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ from PyQt5.QtWidgets import (
|
||||||
|
|
||||||
from View.LateralContribution.UndoCommand import (
|
from View.LateralContribution.UndoCommand import (
|
||||||
SetNameCommand, SetEdgeCommand, SetTypeCommand,
|
SetNameCommand, SetEdgeCommand, SetTypeCommand,
|
||||||
|
SetBeginCommand, SetEndCommand,
|
||||||
AddCommand, DelCommand, SortCommand,
|
AddCommand, DelCommand, SortCommand,
|
||||||
MoveCommand, PasteCommand, DuplicateCommand,
|
MoveCommand, PasteCommand, DuplicateCommand,
|
||||||
)
|
)
|
||||||
|
|
@ -120,6 +121,11 @@ class TableModel(QAbstractTableModel):
|
||||||
if n is None:
|
if n is None:
|
||||||
return _translate("LateralContribution", "Not associate")
|
return _translate("LateralContribution", "Not associate")
|
||||||
return n.name
|
return n.name
|
||||||
|
elif self._headers[column] == "begin_kp":
|
||||||
|
return self._lcs.get(self._tab, row).begin_kp
|
||||||
|
elif self._headers[column] == "end_kp":
|
||||||
|
return self._lcs.get(self._tab, row).end_kp
|
||||||
|
|
||||||
|
|
||||||
return QVariant()
|
return QVariant()
|
||||||
|
|
||||||
|
|
@ -139,20 +145,32 @@ class TableModel(QAbstractTableModel):
|
||||||
if self._headers[column] == "name":
|
if self._headers[column] == "name":
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetNameCommand(
|
SetNameCommand(
|
||||||
self._lcs, self._tab,row, value
|
self._lcs, self._tab, row, value
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
elif self._headers[column] == "type":
|
elif self._headers[column] == "type":
|
||||||
key = next(k for k, v in long_types.items() if v == value)
|
key = next(k for k, v in long_types.items() if v == value)
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetTypeCommand(
|
SetTypeCommand(
|
||||||
self._lcs, self._tab,row, LC_types[key]
|
self._lcs, self._tab, row, LC_types[key]
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
elif self._headers[column] == "edge":
|
elif self._headers[column] == "edge":
|
||||||
self._undo.push(
|
self._undo.push(
|
||||||
SetEdgeCommand(
|
SetEdgeCommand(
|
||||||
self._lcs, self._tab,row, self._data.edge(value)
|
self._lcs, self._tab, row, self._data.edge(value)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
elif self._headers[column] == "begin_kp":
|
||||||
|
self._undo.push(
|
||||||
|
SetBeginCommand(
|
||||||
|
self._lcs, self._tab, row, value
|
||||||
|
)
|
||||||
|
)
|
||||||
|
elif self._headers[column] == "end_kp":
|
||||||
|
self._undo.push(
|
||||||
|
SetEndCommand(
|
||||||
|
self._lcs, self._tab, row, value
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,39 @@ class SetNameCommand(QUndoCommand):
|
||||||
def redo(self):
|
def redo(self):
|
||||||
self._lcs.get(self._tab, self._index).name = self._new
|
self._lcs.get(self._tab, self._index).name = self._new
|
||||||
|
|
||||||
|
class SetBeginCommand(QUndoCommand):
|
||||||
|
def __init__(self, lcs, tab, index, new_value):
|
||||||
|
QUndoCommand.__init__(self)
|
||||||
|
|
||||||
|
self._lcs = lcs
|
||||||
|
self._tab = tab
|
||||||
|
self._index = index
|
||||||
|
self._old = self._lcs.get(self._tab, self._index).begin_kp
|
||||||
|
self._new = new_value
|
||||||
|
|
||||||
|
def undo(self):
|
||||||
|
self._lcs.get(self._tab, self._index).begin_kp = float(self._old)
|
||||||
|
|
||||||
|
def redo(self):
|
||||||
|
self._lcs.get(self._tab, self._index).begin_kp = float(self._new)
|
||||||
|
|
||||||
|
class SetEndCommand(QUndoCommand):
|
||||||
|
def __init__(self, lcs, tab, index, new_value):
|
||||||
|
QUndoCommand.__init__(self)
|
||||||
|
|
||||||
|
self._lcs = lcs
|
||||||
|
self._tab = tab
|
||||||
|
self._index = index
|
||||||
|
self._old = self._lcs.get(self._tab, self._index).end_kp
|
||||||
|
self._new = new_value
|
||||||
|
|
||||||
|
def undo(self):
|
||||||
|
self._lcs.get(self._tab, self._index).end_kp = float(self._old)
|
||||||
|
|
||||||
|
def redo(self):
|
||||||
|
self._lcs.get(self._tab, self._index).end_kp = float(self._new)
|
||||||
|
|
||||||
|
|
||||||
class SetEdgeCommand(QUndoCommand):
|
class SetEdgeCommand(QUndoCommand):
|
||||||
def __init__(self, lcs, tab, index, edge):
|
def __init__(self, lcs, tab, index, edge):
|
||||||
QUndoCommand.__init__(self)
|
QUndoCommand.__init__(self)
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,9 @@ long_types = {
|
||||||
table_headers = {
|
table_headers = {
|
||||||
"name": _translate("LateralContribution", "Name"),
|
"name": _translate("LateralContribution", "Name"),
|
||||||
"type": _translate("LateralContribution", "Type"),
|
"type": _translate("LateralContribution", "Type"),
|
||||||
"edge": _translate("LateralContribution", "Edge")
|
"edge": _translate("LateralContribution", "Reach"),
|
||||||
|
"begin_kp": _translate("LateralContribution", "Begin kp (m)"),
|
||||||
|
"end_kp": _translate("LateralContribution", "End kp (m)")
|
||||||
}
|
}
|
||||||
|
|
||||||
LC_types = {
|
LC_types = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue