solidParts property

  1. @override
List<SolidPart> get solidParts
override

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,
              ],
        ]),
      ),
  ];
}