.. role:: blue :class: blue MbConeSpiral Conical Spiral =========================== .. _MbConeSpiral_Conical_Spiral_: .. kernel version: The :blue:`MbConeSpiral` class is declared in the *cur_cone_spiral.h* file. The conical spiral is derived from the :blue:`MbSpiral` curve. The spiral is defined by the local coordinate system :ref:`MbPlacement3D ` **position**, the radius *radius*, the tangent of the cone angle *tgAlpha*, the spiral pitch divided by 2π, *step_2pi*, and two boundary parameters of the spiral *tmin* and *tmax*. The curve also has some additional data that is optional and is used to speed up the curve methods. The spiral axis coincides with the **position.axisZ** axis of the local coordinate system. The *tgAlpha* parameter is equal to the tangent of the angle between the spiral axis and the cone generatrix of the spiral. The *tmin* and *tmax* parameters are angles measured from the **position.axisX** vector to the **position.axisY** vector. Angle values that are multiples of 2π correspond to points of the curve in the XZ plane of the local coordinate system. The curve parameter *t* takes values on the segment *tmin* ≤ *t* ≤ *tmax*. In the :blue:`PointOn`\( double & *t*, :blue:`MbCartPoint3D` & **r**) method, the radius vector of the curve **r** is described by the vector function .. math:: \mathbf{r}(t) = \mathbf{position.origin} + \left( radius + t \cdot tgAlpha \cdot step\_2pi \right) \left( \cos(t) \cdot \mathbf{position.axisX} + \sin(t) \cdot \mathbf{position.axisY} \right) + \left( t \cdot step\_2pi \right) \mathbf{position.axisZ}. The conical spiral is shown in the figure: .. figure:: /MODELER/CURVES/pictures/O.4.14.1.png :width: 9cm :align: center The curve radius must be greater than zero: *radius* > 0. For the boundary parameters, the inequality *tmin* < *tmax* must hold. The curve cannot be periodic. The local coordinate system **position** can be either right-handed or left-handed. For a cylindrical spiral, *tgAlpha* = 0.