To continue one uses straightforward
Clear[R]
R = With[{a = \[Pi], b = 1},
BooleanRegion[Or, Join[
Table[Disk[{x, b/a Sqrt[a^2 - x^2]}, b Sqrt[1 + x^2/b^2 - x^2/a^2]], {x, -a, a, a/17}],
Table[Disk[{x, -b/a Sqrt[a^2 - x^2]}, b Sqrt[1 + x^2/b^2 - x^2/a^2]], {x, -a, a, a/17}]]]];
bdr = BoundaryDiscretizeRegion[R];
Clear[g]
g = Interpolation[Select[MeshCoordinates[bdr], #[[2]] >= 0 &]];
to produce the wanted solids of revolution
RevolutionPlot3D[g[t], {t, -6.28, 6.28}, PerformanceGoal -> "Quality"]
RevolutionPlot3D[{g[t], t}, {t, -6.28, 6.28}, PerformanceGoal -> "Quality"]
et voilĂ

this approach is rather generic because of the usage of mesh algorithms.