private void SetLinkInfo(CircuitObject Info) { m_LineAction.SetCtrlPositionInfo(Info.GetCtrlInfo()); foreach (NDleapObject leap in m_HaveLeap) { if (leap == null) { continue; } LeapObject obj = Info.GetLinkInfo(leap.LeapIndex); if (obj != null) { //link NDlabObject lab = NDlabObject.FindLabObject(obj.linkCircuitObjectID); if (lab != null && lab is NDCircuitObject) { NDleapObject leapobj = (lab as NDCircuitObject).FindLeap(obj.linkCircuitLeapIndex); if (leapobj != null && leapobj is NDCircuitLeap) { (leap as NDLineLeap).Link = (leapobj as NDCircuitLeap); (leapobj as NDCircuitLeap).AddLinkLine(this); } } } } }
/// <summary> /// 计算距离 /// </summary> protected float CalcDistance(NDleapObject leap1, NDleapObject leap2) { if (leap1 == null || leap2 == null) { return(10000.0f); } Vector3 v1 = U3DUtil.SetZ(leap1.ScreenPos, 0); Vector3 v2 = U3DUtil.SetZ(leap2.ScreenPos, 0); return(Vector2.Distance(v1, v2)); }
public bool CheckLineInConnect(NDleapObject leap) { if (leap != null && leap is NDCircuitLeap) { NDCircuitLeap l = leap as NDCircuitLeap; if (l.HaveLine == false) { return(false); } foreach (EleLine line in l.LinkLine) { if (line.ConnectLink) { return(true); } } } return(false); }