Revamp Circle
:
- Added
contains()
directly toCircle
. - The set of points in larger circles is tweaked to include more points so
- that there isn't only a single point at each edge on the origin.
isEdge()
now returns false for points not in the circle at all.- The set of edge points is exactly the points in the circle that are not in the circle of one smaller radius. Before, it seemed to try to be that, but not quite.
Revamp Direction
and Vec
:
- Make
Direction
an enum so that switches on it provide better exhaustiveness checking. - Turn
VecBase
intoVecMixin
.
- Migrate to null safety. The fill parameter to
Array2D
is now required. - Require a
T Function(Vec)
toArray2D.generated()
andArray2D.generate()
. Runtime overloading doesn't feel idiomatic today.
- Better
hashCode
onVec
with fewer collisions.
- Add
Vec.nearestDirection
. - Add
Vec.intercardinalNeighbors
.
Rng.take()
no longer preserves order, but is faster. To preserve order, useRng.takeOrdered()
.- Add
Rng.round()
. - Add
Vec.neighbors
andVec.cardinalNeighbors
.
- Add
Rng.countFromFloat()
andRng.normal()
.
- Add
Array2D.fill()
.
- Add
Rng.shuffle()
andRng.setSeed()
.
- Add Line and Circle classes.
- Add
Rng.percent()
.
- Add
Rect.offset()
.
- Fix type error.
- Use real generic method syntax.
- Get rid of implicit casts and dynamic.
- Make
Rng.item()
andRng.take()
generic methods. - Add
Rng.float()
.
- Make strong mode clean.
- Fix bug in
Rect.clamp()
.
- Make constants
lowerCamelCase
. - Remove
sign()
andclamp()
since the Dart core libraries have them now.
- Add
CARDINAL
andINTERCARDINAL
direction lists toDirection
.