buildMesh method
Its triangles, textured by uv.
Implementation
@override
ShapeMesh buildMesh([ShapeUv uv = ShapeUv.natural]) {
final big = Primitive3D.size(radius), r = Primitive3D.size(tubeRadius);
final t = Primitive3D.count(sides, 3, 64);
final b = MeshBuilder(uv)
..lathe(
[
for (var k = 0; k <= t; k++)
(
big + r * math.cos(2 * math.pi * k / t),
-r * math.sin(2 * math.pi * k / t),
math.cos(2 * math.pi * k / t),
-math.sin(2 * math.pi * k / t),
uv.anyway(r * 2 * math.pi * k / t),
),
],
Primitive3D.count(segments, 3, 128),
aroundLength: uv.around(big),
profileLength: uv.anyway(r * 2 * math.pi),
);
final mesh = b.build();
return smooth ? mesh : mesh.faceted();
}