# Generalized Solids of Revolution

## 5. Special Variants of Generalized Solids of Revolution

Allowing full range of generalizations gives us a variety in possible shapes, but modeling can become quite messy. To enable more clear inputs, we can simplify or restrict some constructions. Although we loose some shape variety, modeling becomes more powerful due clearer and more intuitive inputs.

### 5.1 Simplified Variant of Generalized Solids of Revolution

In fact, we don't need to have an intersection point to generate generalized conic. The same goal can be achieved using scalar value (the value that intersection point should have). Instead of rotated curve, a function (called distance function) can be used. This somehow restricts maximum number of generalized conics per slice. While number of intersections between rotated curve and slicing plane was unbounded, distance function can generate up to one generalized conic. Still, there can be no generalized conic. This time it is due fact, that value of function is less or equal to minimum of weighted distance sum in the slice.

### 5.2 Lofted Variant of Generalized Solids of Revolution

Avoiding unwanted foci by declaring segments is often a must. Without it, many cool looking objects would turn into ugly potatoes. Extending idea of infinity of segments, each focus can be defined per slice basis. Instead of using three-dimensional curve, we can use two-dimensional one. Each slice has unique number (parameter) assigned. By evaluation of leading curve for chosen parameter, a position and orientation of slice is determined. Coordinates of focus in the slice are obtained by evaluating axis at parameter. Rotated curve is also two-dimensional or distance function can be used instead.

Lofted variant is very similar to lofting technique. In comparison, it does not allow such variety in swept shapes as lofting, but due existence of distance function, it enables fine level control of interpolation along the solid. Lofted variant is subset of generalized cylinders [Reha01].

### 5.3 Slice choosing Curve

Problem with ambiguity of v-coordinate described in chapter 4.1 can be solved by using slice-choosing curve instead of rotated curve. Slice-choosing curve consists of two-dimensional curve and slice-choosing function (so in fact it is three-dimensional curve). A value of slice-choosing function identifies slice (value is parameter at leading curve that generates slice) and corresponding point of two-dimensional curve acts as an intersection point in the slice. In contrast with usage of distance function, slice is not restricted to contain only one generalized conic. Instead of two-dimensional curve, a distance function can be used.