/// <summary> /// 将没有内容的cg转化为null /// </summary> protected CompositeGraphic DisposeNullComposite(CompositeGraphic cg) { if (cg == null) { return(null); } if (cg.isEmpty()) { cg.DisposeMe(); return(null); } cg.isTemporary = true; return(cg); }
public override CompositeGraphic SelectRect(Rect r, double left = 0.0f, double top = 0.0f) { CompositeGraphic compositegraphic = new CompositeGraphic(); compositegraphic.isTemporary = true; RectangleGeometry rg = new RectangleGeometry(r); if (getBorder(left, top).FillContainsWithDetail(rg) != IntersectionDetail.Empty || isTemporary) { if (!isCombined) { List <_graphicpos> lg = new List <_graphicpos>(_list); for (int i = 0; i < lg.Count; i++) { _graphicpos gp = lg[i]; CompositeGraphic cg = gp.g.SelectRect(r, gp.left, gp.top); if (cg == null || cg.isEmpty()) { continue; } cg.isTemporary = true; compositegraphic.MergeComposite(cg, left, top); } } else { return(this); } } if (compositegraphic.isEmpty()) { return(null); } this.Add(compositegraphic); return(compositegraphic); }
public override CompositeGraphic SelectRect(Rect r, double left = 0.0f, double top = 0.0f) { CompositeGraphic compositegraphic = new CompositeGraphic(); compositegraphic.isTemporary = true; RectangleGeometry rg = new RectangleGeometry(r); if (getBorder(left, top).FillContainsWithDetail(rg) != IntersectionDetail.Empty || isTemporary) { if (!isCombined) { List<_graphicpos> lg = new List<_graphicpos>(_list); for (int i = 0; i < lg.Count; i++) { _graphicpos gp = lg[i]; CompositeGraphic cg = gp.g.SelectRect(r, gp.left, gp.top); if (cg == null || cg.isEmpty()) continue; cg.isTemporary = true; compositegraphic.MergeComposite(cg, left, top); } } else { return this; } } if (compositegraphic.isEmpty()) return null; this.Add(compositegraphic); return compositegraphic; }