buildMesh method

  1. @override
ShapeMesh buildMesh([
  1. ShapeUv uv = ShapeUv.natural
])
override

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();
}