model: Add river model on top of other model component.

mesh
Pierre-Antoine Rouby 2023-04-05 11:54:22 +02:00
parent 35205973f1
commit daa7ca867c
3 changed files with 40 additions and 8 deletions

33
src/Model/River.py Normal file
View File

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
from Model.Network.Node import Node
from Model.Network.Edge import Edge
from Model.Network.Graph import Graph
from Model.Geometry.Profile import Profile
from Model.Geometry.Reach import Reach
class RiverNode(Node):
def __init__(self, id:str, name:str,
x:float, y:float):
super(RiverNode, self).__init__(
id, name,
x, y
)
self.locker = None
class RiverReach(Edge):
def __init__(self, id:str, name:str,
node1:RiverNode = None,
node2:RiverNode = None):
super(RiverReach, self).__init__(
id, name,
node1, node2
)
self.reach = None
class River(Graph):
def __init__(self):
super(River, self).__init__()

View File

@ -19,7 +19,7 @@ class Study(Serializable):
self.last_save_date = datetime.now() self.last_save_date = datetime.now()
# Study data # Study data
self.data = {} self.river = None
@classmethod @classmethod
def new(cls): def new(cls):

View File

@ -1,8 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from Model.Network.Node import Node from Model.River import RiverNode, RiverReach, River
from Model.Network.Edge import Edge
from Model.Network.Graph import Graph
from View.ASubWindow import ASubWindow from View.ASubWindow import ASubWindow
from View.Network.GraphWidget import GraphWidget from View.Network.GraphWidget import GraphWidget
from View.Network.TableModel import ( from View.Network.TableModel import (
@ -26,11 +25,11 @@ class NetworkWindow(ASubWindow):
self.ui.setWindowTitle(title) self.ui.setWindowTitle(title)
self.model = model self.model = model
if "graph" not in self.model.data: if self.model.river is None:
self.graph = Graph() self.graph = River()
self.model.data["graph"] = self.graph self.model.river = self.graph
else: else:
self.graph = self.model.data["graph"] self.graph = self.model.river
# Graph Widget # Graph Widget