Circular array modifier, ported to 2.8.

Here is a demo video.

The parameters:

- Modes : simple, homothetic, rounded

- Simple mode: the modifier creates simple duplis of the mesh rotated around the axis

*Angle of rotation*: the mesh is duplicated < slices > time inside this angle

*Slices*: amount of times the duplication occurs

*Iterations*: amount of times the angle is repeted

*Heigh*t: wanted height, with 3 modes. Slice: the height is the height between two consecutive slices. Iteration: the height is given for an iteration. Total: the height is total height of the result

*Axis*: 3 possibilities. Around X and facing Y. Around Y and facing Z. Around Z and facing X. See comments about that below

*Pivot axis*: another object can be used as pivot (instead of the object origin and local axis)

- Homothetic: the duplis are stretched transversally so that they can be joined. Below the parameters which are different from simple mode

*Margin angle*: an angle between slices

*Shear*: connect mesh borders along the height

*Merge*: merge border vertices (from a slice to the next one and from first/last slice)

- Rounded: same as homothetic, but the vertices are shifted longitudinally to make the shape round. The parameters are the same as for *homothetic*

Comment about axis: the calculation considers a < facing axis >, so that (for homothetic and rounded modes), the connection between slices is done when the mesh is symmetrical along this facing axis.

Another calculation could avoid that, by projecting the mesh along the rotation axis whatever its position is around it. But using a facing axis allows to obtains asymmetrical effects (visible in the video), at the cost of user effort to place the mesh (or axis object) correctly.

Sybren, I propose you as reviewer, if you're ok.