LayoutLine AddVerticalLine(float r) { var m = new ModelElement(); m.Load(Left.model.ModData); float ex = Top.model.data.localPosition.y; float sx = Down.model.data.localPosition.y; float w = ex - sx; if (w < 0) { w = -w; } LayoutLine line = new LayoutLine(layout, m, Direction.Vertical); var pos = model.data.localPosition; float dx = Left.model.data.localPosition.x; pos.x = Right.model.data.localPosition.x - dx; pos.x *= r; pos.x += dx; line.SetSize(pos, new Vector2(Layout.LineWidth, w)); line.SetLineStart(Down); line.SetLineEnd(Top); return(line); }
void InitialFixLine() { ModelElement m = new ModelElement(); m.Load(LineMod.ModData); Left = new LayoutLine(this, m, Direction.Vertical, false); m = new ModelElement(); m.Load(LineMod.ModData); Right = new LayoutLine(this, m, Direction.Vertical, false); m = new ModelElement(); m.Load(LineMod.ModData); Top = new LayoutLine(this, m, Direction.Vertical, false); m = new ModelElement(); m.Load(LineMod.ModData); Down = new LayoutLine(this, m, Direction.Vertical, false); Vector2 size = model.data.sizeDelta; float rx = size.x * 0.5f; float ty = size.y * 0.5f; Left.SetSize(new Vector2(-rx, 0), new Vector2(LineWidth, size.y)); Right.SetSize(new Vector2(rx, 0), new Vector2(LineWidth, size.y)); Top.SetSize(new Vector2(0, ty), new Vector2(size.x, LineWidth)); Down.SetSize(new Vector2(0, -ty), new Vector2(size.x, LineWidth)); }
LayoutLine AddHorizontalLine(float r) { var m = new ModelElement(); m.Load(Top.model.ModData); float ex = Right.model.data.localPosition.x; float sx = Left.model.data.localPosition.x; float w = ex - sx; if (w < 0) { w = -w; } LayoutLine line = new LayoutLine(layout, m, Direction.Horizontal); var pos = model.data.localPosition; float dy = Down.model.data.localPosition.y; pos.y = Top.model.data.localPosition.y - dy; pos.y *= r; pos.y += dy; line.SetSize(pos, new Vector2(w, Layout.LineWidth)); line.SetLineStart(Left); line.SetLineEnd(Right); return(line); }
void SizeChanged(ModelElement mod) { Vector2 size = model.data.sizeDelta; float rx = size.x * 0.5f; float ty = size.y * 0.5f; Left.SetSize(new Vector2(-rx, 0), new Vector2(LineWidth, size.y)); Right.SetSize(new Vector2(rx, 0), new Vector2(LineWidth, size.y)); Top.SetSize(new Vector2(0, ty), new Vector2(size.x, LineWidth)); Down.SetSize(new Vector2(0, -ty), new Vector2(size.x, LineWidth)); for (int i = 0; i < lines.Count; i++) { lines[i].SizeChanged(); } }