CalcHesseRepresentation (FB) ¶ FUNCTION_BLOCK CalcHesseRepresentation This function block will retrieve the normal form (due to Hesse) of a plane \(E\) in the three dimensional space: \(E\colon(x-p)\cdot n = 0\) , where \(n\) is the normed normal on the plane and \(p\) a point on the plane. The plane is originally specified by three of its points. InOut: Scope Name Type Comment Input vP1 POINTER TO Vector3D point on plane \(E\) vP2 POINTER TO Vector3D point on plane \(E\) vP3 POINTER TO Vector3D point on plane \(E\) Output plane PLANE_H normal form of plane \(E\) xError BOOL Error flag TRUE : If input points are collinear
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}\)