MbConeSurface Conical Surface

The MbConeSurface class is declared in the surf_cone_surface.h file.

The MbConeSurface conical surface belongs to the group of elementary surfaces MbElementarySurface. The conical surface is described by the radius radius, the height height, and the cone angle angle, defined in the local coordinate system MbPlacement3D position.

The first surface parameter is measured along the arc from the vector position.axisX in the direction of the vector position.axisY. The first surface parameter u takes values on the interval: umin ≤ u ≤ umax. The values u = 0 and u = 2π correspond to a point on the XZ plane. The surface can be periodic with respect to the first parameter. For a periodic surface, umax - umin = 2π; for a non-periodic surface, umax - umin < 2π.

The second surface parameter is measured along the straight line in the direction of the vector position.axisZ. The second surface parameter v takes values on the interval: vmin ≤ v ≤ vmax. The value v = 0 corresponds to the origin of the local coordinate system, and the value v = 1 corresponds to the point at a distance height from the XY plane of the local coordinate system of the surface.

In the PointOn( double u, double v, MbCartPoint3D & s ) method, the position vector of the surface s is described by the vector function

\begin{equation} \mathbf{s}(u, v) = \mathbf{position.origin} + \left( \mathit{radius} + \mathit{height} \cdot v \cdot \tan(\mathit{angle}) \right) \left( \cos(u)\, \mathbf{position.axisX} + \sin(u)\, \mathbf{position.axisY} \right) + \mathit{height} \cdot v\, \mathbf{position.axisZ} \end{equation}

Fig. 1 shows the conical surface:

../../../../_images/O.5.4.1.png

Fig. 1

The radius and height must be greater than zero, and the absolute value of the angle must not exceed π/2: radius > 0, height > 0, -π/2 < angle < π/2. When angle = 0, the conical surface is equivalent to a cylindrical surface. The following inequalities must hold for the boundary parameters of the surface: umin < umax, vmin < vmax. The pole of the surface corresponds to the value of the second parameter v = -radius / (height · tg(angle)). The boundary parameters vmax and vmin take values such that the surface is located on one side of the pole.

The local coordinate system position can be either right-handed or left-handed. If the local coordinate system is right-handed, the normal is directed towards the convex side of the surface (away from the surface axis); if the local coordinate system is left-handed, the normal is directed towards the concave side of the surface (towards the surface axis).