public void TrySnapConnectCrvToRectShape(ICanvas canvas, IConnectionCurve crv) { if (crv == null) { return; } List <IDrawObject> allSelectObjs = GetHitObjects(canvas, ((IDrawObject)crv).GetBoundingRect(canvas), true); foreach (var curObj in allSelectObjs) { DrawTools.RectBase rectBase = curObj as DrawTools.RectBase; if (rectBase == null) { continue; } DrawTools.RectBase.eVertexId vid = rectBase.GetVertexIdFromPoint(crv.StartPoint.GetPosition()); if (vid != DrawTools.RectBase.eVertexId.None) { rectBase.AttachConnectionCrvNode(crv.StartPoint); } vid = rectBase.GetVertexIdFromPoint(crv.EndPoint.GetPosition()); if (vid != DrawTools.RectBase.eVertexId.None) { rectBase.AttachConnectionCrvNode(crv.EndPoint); } } }
void MoveReferenceNodesOfRect(List <INodePoint> selectedNodes, ISnapPoint snapPt, UnitPoint mouseunitpoint) { List <INodePoint> allConnectionCrvNodes = new List <INodePoint>(); List <UnitPoint> allNewPos = new List <UnitPoint>(); foreach (var curNode in selectedNodes) { DeattachConnectionNode(curNode); IConnectionCurve connectionCrv = curNode.GetOriginal() as IConnectionCurve; if (connectionCrv != null) { m_canvas.DataModel.TrySnapConnectCrvToRectShape(m_canvas, connectionCrv); } } }