buildMesh method
Its triangles, textured by uv.
Implementation
@override
ShapeMesh buildMesh([ShapeUv uv = ShapeUv.natural]) {
final r = Primitive3D.size(radius),
h = Primitive3D.size(height),
hy = h / 2;
final s = Primitive3D.count(segments, 3, 128);
final slant = math.sqrt(r * r + h * h);
final nr = h / slant, ny = -r / slant;
final along = uv.anyway(slant);
final b = MeshBuilder(uv)
..lathe(
[(0, -hy, nr, ny, 0), (r, hy, nr, ny, along)],
s,
aroundLength: uv.around(r),
profileLength: along,
)
..disc(r, hy, s, up: false);
final mesh = b.build();
return smooth ? mesh : mesh.faceted();
}