9using System.Collections;
10using System.Collections.Generic;
26 new LocalRect(Vector3.zero,
new Vector2(0.5f, 0.5f));
43 this.center = uRect.center;
44 this.radii =
new Vector2(uRect.width / 2f, uRect.height / 2f);
48 return new LocalRect(uRect.center,
new Vector2(uRect.width / 2f,
53 return new LocalRect(Vector3.zero, Vector2.one * boxRadius);
58 return center +
radii.CompMul(
new Vector2(-1f, 1f)).WithZ(0f); }
69 return new Rect(
this, transform);
79 return new LocalRect(this.center, this.radii * radiusMultipler);
85 return new LocalRect(this.center, this.radii.CompMul(radiusMultiplers));
102 radii = Vector2.Max(Vector2.Lerp(from.
radii, to.
radii, t), Vector2.zero);
110 centripetal:
false).PositionAt(t);
112 d.
radii, centripetal:
false).PositionAt(t).ToVector2(), Vector2.zero);
119 var useMargins = cellMargins.UnwrapOr(
Margins.
zero);
120 var useVerticalOrigin = verticalOrigin.UnwrapOr(
VerticalOrigin.Top);
126 private float _height;
136 _verticalOrigin = verticalOrigin;
142 row = _index, col = 0, index = _index, margins = _margins,
146 top: _index * _height,
147 bottom: _index * _height + _height,
152 top: _rect.
top - (_index * _height),
153 bottom: _rect.
top - (_index * _height + _height),
162 return _index * _height + _height <= _rect.
height;
An interface that signifies this class can interpolate via the standard techniques
UnityEngine.Rect UnityRect
LineEnumerator GetEnumerator()
LineEnumerator(LocalRect rect, float height, Margins margins, VerticalOrigin verticalOrigin)
Rect With(Transform transform)
static LocalRect FromRadius(float boxRadius)
LineEnumerator TakeLines(float height, Margins? cellMargins=null, VerticalOrigin? verticalOrigin=null)
LocalRect CopyFrom(LocalRect toCopy)
bool FillLerped(LocalRect from, LocalRect to, float t)
LocalRect Scale(float radiusMultipler)
Returns a new LocalRect with scaled radii. The center is unchanged.
LocalRect(UnityRect uRect)
LocalRect(float top, float bottom, float left, float right)
static LocalRect FromUnityRect(UnityRect uRect)
bool FillSplined(LocalRect a, LocalRect b, LocalRect c, LocalRect d, float t)
LocalRect(Vector3 center, Vector2 radii)
static readonly LocalRect unit
LocalRect Scale(Vector2 radiusMultiplers)
Returns a new LocalRect with component-wise scaled radii. The center is unchanged.
LocalRect AlignToCenter(LocalRect ofRect)
Returns a new LocalRect whose center matches the center of the argument rect.
static readonly Margins zero