ExpressiveShapeGeometry class
A reusable pairing of a border and its precomputed content interiors.
Keep this object while endpoints stay unchanged. Morph matching happens once, not on animation ticks. No assets, asynchronous loading, or runtime geometric searches are needed. Only the catalog's unrotated, unit-coordinate borders are supported; do not apply these interiors to another border transform.
Constructors
- ExpressiveShapeGeometry({required MaterialExpressiveShape to, MaterialExpressiveShape? from})
Properties
- from → MaterialExpressiveShape?
-
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- preferredCenter → Offset
-
Optical content center in the same bounds-centered unit coordinates as
safeRects. Content remains fixed here and scales down when needed.
latefinal
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
safeRects
→ List<
Rect> -
Rectangles safe at catalog endpoints, not necessarily during transitions.
After mid-morph retargeting, only the destination is certified safe.
Intersecting endpoint rectangles is safe; interpolating/unioning is not.
latefinal
- to → MaterialExpressiveShape
-
final
Methods
-
border(
{double progress = 1, bool stretch = false}) → BoundsCenteredBorder -
Centers the scaled path's bounds like Compose's toShape adapter.
stretchpermits nonuniform scaling; false preserves proportions. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
retarget(
MaterialExpressiveShape target, {required double progress}) → ExpressiveShapeGeometry - Redirect from the current outline, not the previous target. Settled endpoints keep their original polygon features. An interrupted frame has no catalog corner metadata: preserve its exact cubics as ignorable edge features and let Morph use its perimeter-based fallback correspondence. This preserves position, not animation velocity. It neither samples nor normalizes the outline and retains no chain of previous animations.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited