Pure geometry for a Y-up cylinder centered at the origin: caps at y = ±height/2,
smooth side (per-segment normals) and flat caps. Interleaved 12-float vertex
stride (position3 + normal3 + uv2 + tangent4) matching Taos's vertex layout.
Mesh has no createCylinder, so the engine provides this for assembly/scene
primitives; factored out (device-free) so it's unit-testable.
Pure geometry for a Y-up cylinder centered at the origin: caps at y = ±height/2, smooth side (per-segment normals) and flat caps. Interleaved 12-float vertex stride (position3 + normal3 + uv2 + tangent4) matching Taos's vertex layout.
Meshhas nocreateCylinder, so the engine provides this for assembly/scene primitives; factored out (device-free) so it's unit-testable.