solidParts property
One piece per step along it.
Implementation
@override
List<SolidPart> get solidParts {
final (cx, cy) = _centre;
final hz = Primitive3D.size(depth) / 2;
return [
for (var i = 0; i < _steps; i++)
SolidHull(
Float32List.fromList([
for (final step in [i, i + 1])
for (final r in [_inner, _outer])
for (final z in [-hz, hz]) ...[
r * math.cos(_at(step)) - cx,
-r * math.sin(_at(step)) - cy,
z,
],
]),
),
];
}