ProjectPointOnPlane (FUN) ¶ FUNCTION ProjectPointOnPlane : LREAL This function will project a point \(x \in \mathbb{R^{3}}\) onto a plane in direction of the normal vector. The return is the distance of the point \(x\) to the plane. InOut: Scope Name Type Comment Return ProjectPointOnPlane LREAL Input pplane POINTER TO Plane_H Pointer on plane description pvOrig POINTER TO VECTOR3D Pointer on point \(x \in \mathbb{R^{3}}\) to be projected pvProj POINTER TO VECTOR3D Pointer on projection of \(x\) onto plane
CartesianToPolar (FB) ¶ FUNCTION_BLOCK CartesianToPolar This function block will change the Cartesian coordinates of the two dimensional space \((x,y) \in \mathbb{R^{2}}\) , to polar coordinates \((r, \varphi) \in \mathbb{R_{0}^{+}} \times \left( -\pi, \pi\right]\) , which are connected via: \[ \begin{align}\begin{aligned}r=\sqrt{x^{2} + y^{2}}\\\varphi = \arctan\left(y, x\right)\end{aligned}\end{align} \] InOut: Scope Name Type Comment Input lrX LREAL X coordinate \(x\) lrY LREAL Y coordinate \(y\) Output lrAngle LREAL Angular coordinate \(\varphi\) (azimuth) lrDistance LREAL Radius \(r\)
PolarToCartesian (FB) ¶ FUNCTION_BLOCK PolarToCartesian This function block will change the polar coordinates of the two dimensional space \((r, \varphi) \in \mathbb{R_{0}^{+}} \times \left( -\pi, \pi\right]\) to Cartesian coordinates \((x,y) \in \mathbb{R^{2}}\) , which are connected via: \[ \begin{align}\begin{aligned}x = \cos(\varphi) \cdot r\\y = \sin(\varphi) \cdot r\end{aligned}\end{align} \] InOut: Scope Name Type Comment Input lrAngle LREAL Angular coordinate \(\varphi\) (azimuth) lrDistance LREAL Radius \(r\) Output lrX LREAL X coordinate \(x\) lrY LREAL Y coordinate \(y\)
AddMultiplicatedVector (FUN) ¶ FUNCTION AddMultiplicatedVector : BOOL This function will multiply the input vector \(v_{2} \in \mathbb{R}\) by a scalar \(a \in \mathbb{R}\) and will add this product to the input vector \(v_{1} \in \mathbb{R}\) : \[b = v_{1} + a \cdot v_{2}\] InOut: Scope Name Type Comment Return AddMultiplicatedVector BOOL The return value is not used. Input pv1 POINTER TO Vector3d Pointer to input vector \(v_{1} \in \mathbb{R}\) pv2 POINTER TO Vector3d Pointer to input vector \(v_{2} \in \mathbb{R}\) lrFactor LREAL Scalar multiplier \(a \in \mathbb{R}\) pv POINTER TO Vector3D Pointer to result \(b\)
CrossProduct (FB) ¶ FUNCTION_BLOCK CrossProduct This function will calculate the Cartesian product (outer product) of two vectors \(v_{1}, v_{2} \in \mathbb{R^{3}}\) . The result will be returned in vector \(v = v_{1} \times v_{2} \in \mathbb{R^{3}}\) . Note Keep in mind that, due to rounding errors, the input of two collinear vectors will not necessarily result in the null vector. InOut: Scope Name Type Comment Input v1 Vector3d Input vector \(v_{1} \in \mathbb{R}\) v2 Vector3d Input vector \(v_{2} \in \mathbb{R}\) Output v Vector3D Cartesian product \(v_{1} \times v_{2} \in \mathbb{R^{3}}\)
CrossProductNormed (FB) ¶ FUNCTION_BLOCK CrossProductNormed This function will calculate the Cartesian product of two vectors \(v_{1}, v_{2} \in \mathbb{R^{3}}\) . The result will be returned in vector \(v = \frac{v_{1} \times v_{2}}{\left \| v_{1} \times v_{2}\right \|} \in \mathbb{R^{3}}\) . Note Keep in mind that, due to rounding errors, the input of two collinear vectors will not necessarily result in the null vector. InOut: Scope Name Type Comment Input v1 Vector3d Input vector \(v_{1} \in \mathbb{R}\) v2 Vector3d Input vector \(v_{2} \in \mathbb{R}\) Output v Vector3D Normed outer product \(v \in \mathbb{R^{3}}\) xError BOOL Error flag TRUE : If the calculated outer product yields the null vector so that scaling is not possible
MakeNormed3D (FUN) ¶ FUNCTION MakeNormed3D : BOOL This function will scale an input vector \(v \in \mathbb{R^{3}}\) to norm 1, as far as \(v\) is not the null vector. InOut: Scope Name Type Comment Return MakeNormed3D BOOL TRUE : If \(v\) is not the null vector Input pv POINTER TO VECTOR3D Pointer to input vector \(v \in \mathbb{R^{3}}\)
Norm3D (FUN) ¶ FUNCTION Norm3D : LREAL This function will return the length/norm of a three dimensional vector \(v \in \mathbb{R^{3}}\) InOut: Scope Name Type Comment Return Norm3D LREAL The length/norm of the input vector \(v\) Input pv POINTER TO VECTOR3D Pointer to input vector \(v \in \mathbb{R^{3}}\)
ScalProd3D (FUN) ¶ FUNCTION ScalProd3D : LREAL This function will calculate the scalar product of two vectors \(v_{1}, v_{2} \in \mathbb{R^{3}}\) InOut: Scope Name Type Comment Return ScalProd3D LREAL \(v_{1} \cdot v_{2} \in \mathbb{R}\) Input pv1 POINTER TO Vector3d Pointer to input vector \(v_{1} \in \mathbb{R}\) pv2 POINTER TO Vector3d Pointer to input vector \(v_{2} \in \mathbb{R}\)
ScalProd3DStand (FUN) ¶ FUNCTION ScalProd3DStand : LREAL This function will calculate the cosine of the angle being drawn by two input vectors \(v_{1}, v_{2} \in \mathbb{R^{3}}\) . InOut: Scope Name Type Comment Return ScalProd3DStand LREAL If one of the input vector equals the null vector, 0 will be returned. Input pv1 POINTER TO Vector3d Pointer to input vector \(v_{1} \in \mathbb{R}\) pv2 POINTER TO Vector3d Pointer to input vector \(v_{2} \in \mathbb{R}\)