public override void Draw(Graphics g) { if (centerline == null) { var cpoint = GetCenter(); foreach (var drawObject in drawObjects) { if (drawObject is DrawLineObject line) { if (line.GetWorldDrawObject().HitTest(cpoint) >= 0) { centerline = line; leftPointF = line.GetHandle(0); } } } } foreach (var drawObject in drawObjects) { if (drawObject == centerline) { centerline.MoveHandleTo(isClose ? new PointF(0, leftPointF.Y) : leftPointF, 0); } } base.Draw(g); }
public SingleDisConnectorDevice(float x, float y, float width, float height, string entityId, List <DrawObject> drawobjs, List <DeviceDrawObjectBase> deviceDrawObjectBases, string hrefId) : base(x, y, width, height, entityId, drawobjs, deviceDrawObjectBases, hrefId) { var cpoint = GetCenter(); foreach (var drawObject in drawObjects) { if (drawObject is DrawLineObject line) { if (line.GetWorldDrawObject().HitTest(cpoint) >= 0) { centerline = line; leftPointF = line.GetHandle(1); } } } }
public static DrawObject CreateDrawObject(SVGUnit svge) { DrawObject o = null; switch (svge.getElementType()) { case SVGUnit.SVGUnitType.typeLine: o = DrawLineObject.Create((SVGLine)svge); break; case SVGUnit.SVGUnitType.typeRect: o = DrawRectangleObject.Create((SVGRect)svge); break; case SVGUnit.SVGUnitType.typeEllipse: o = DrawEllipseObject.Create((SVGEllipse)svge); break; case SVGUnit.SVGUnitType.typePolyline: o = DrawPolygonObject.Create((SVGPolyline)svge); break; case SVGUnit.SVGUnitType.typeImage: o = DrawImageObject.Create((SVGImage)svge); break; case SVGUnit.SVGUnitType.typeText: o = DrawTextObject.Create((SVGText)svge); break; case SVGUnit.SVGUnitType.typePath: o = DrawPathObject.Create((SVGPath)svge); break; case SVGUnit.SVGUnitType.typeCircle: o = DrawCircleObject.Create((SVGCircle)svge); break; default: break; } return(o); }