namespace HydroUI { [Serializable] public class LinkCalcModel : LinkModel { public LinkCalcModel() { } public LinkCalcModel(LinkCalcModel model) : base(model) { this.Node1 = model.Node1; this.Node2 = model.Node2; this.Diameter = model.Diameter; this.Length = model.Length; this.Roughness = model.Roughness; this.MinorLoss = model.MinorLoss; } public string Node1 { get { if (_StartNode != null) return _StartNode.ID; return base.Node1; } set { base.Node1 = value; } } public string Node2 { get { if (_EndNode != null) return _EndNode.ID; return base.Node2; } set { base.Node2 = value; } } private NodeCalcModel _StartNode; public NodeCalcModel StartNode { get { return _StartNode; } set { _StartNode = value; if (_StartNode != null) this.Node1 = _StartNode.ID; } } private NodeCalcModel _EndNode; public NodeCalcModel EndNode { get { return _EndNode; } set { _EndNode = value; if (_EndNode != null) this.Node2 = _EndNode.ID; } } /// 长度 public float Length { get { if (base.Length > 0) return base.Length; else { if (_StartNode != null && _EndNode != null) { ////求_StartNode到_EndNode的距离 return (float)Math.Sqrt(Math.Pow(_StartNode.X - _EndNode.X, 2) + Math.Pow(_StartNode.Y - _EndNode.Y, 2) + Math.Pow(_StartNode.Elev - _EndNode.Elev, 2)); } else { return 0; } } } set { base.Length = value; } } //实际需水量 [DisplayName("流量(m³/h)")] [Browsable(true)] public float EN_FLOW { get; set; } = float.NaN; //实际需水量 [DisplayName("流速(m/s)")] [Browsable(true)] public float EN_VELOCITY { get; set; } = float.NaN; //实际需水量 [DisplayName("水头损失(m)")] [Browsable(true)] public float EN_HEADLOSS { get; set; } = float.NaN; [DisplayName("沿程水损(m)")] [Browsable(true)] public float EN_HEADLOSS_LINE { get; set; } = float.NaN; [DisplayName("局部水损(m)")] [Browsable(true)] public float EN_HEADLOSS_MINOR { get; set; } = float.NaN; //实际需水量 [DisplayName("当前状态")] public float EN_STATUS { get; set; } = float.NaN; public bool Selected { get; set; } [Description("鼠标悬于上方")] [DisplayName("鼠标悬于上方")] public bool Hovered { get; set; } } }