    

 ## On this page

  

 

 # OpenTD.Quaternion Class Reference

 Last update: 16.07.2025 

Describes a mathematical quaternion. Used, for example, to describe material orientation in solid finite elements. [More...](#details)

Inheritance diagram for OpenTD.Quaternion:

 ![](/sites/default/files/migrate-content/opentd_net4_reference_2025_r2_1/class_open_t_d_1_1_quaternion.png)



## <a id="pub-methods" name="pub-methods"></a>Public Member Functions

 [Quaternion](#a028ca8e12f89d7ad206bc96bcb7bb11e) ()  [Quaternion](#ae53ec0b8e53a51033fd62041b6e9c727) (double \_s)  [Quaternion](#a7399036d28ce6d1858f3ac7fa85ab4e7) (double \_s, double x, double y, double z)  [Quaternion](#a3decca09c09435f52bebe32ecf62eb7d) (double \_s, [Vector3d](class_open_t_d_1_1_vector3d.xhtml) \_v)  [Quaternion](#af745d031e582e6cc8c356b10f7ff7262) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) q)  [Quaternion](#a2b4f8fa683e2f07bbeca424af9ca34b4) ([Matrix3d](class_open_t_d_1_1_matrix3d.xhtml) m) [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [Conjugate](#ab95099e44eb6c565479c9dfd9bb3d1c6) () double [Norm](#abf630cdf365f4796a858cc266672f705) () void [Normalize](#a227775089b4cd5fc18b34c5612f8b984) () double [DotProduct](#ac26fe54cb16044b9358866248b2fc7ea) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) q) [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [Inverse](#a62b5af90e9a9636ca223dbce77363df5) () ## <a id="pub-static-methods" name="pub-static-methods"></a>Static Public Member Functions

static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [operator+](#acf768bb61201fb2a5497319aa1a97fc1) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) p, [Quaternion](class_open_t_d_1_1_quaternion.xhtml) q) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [operator-](#a383278703c2e07b040aa7874a1ae0606) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) p, [Quaternion](class_open_t_d_1_1_quaternion.xhtml) q) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [operator-](#a6bfe884080cf10560842fe093d2870c9) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) q) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [operator\*](#a634a0c0c7fd4d46d3d2006578a2137cf) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) p, [Quaternion](class_open_t_d_1_1_quaternion.xhtml) q) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [operator\*](#a83934c17e83994acb5cf92e5f4a4ac7f) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) p, double r) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [operator/](#ae4e3e2c0fcbe9e431384600e0260082a) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) p, double r) static implicit [operator Matrix3d](#a8725b7cc9acdeee5da83aa94a0c7dd5b) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) q) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [Exp](#ac16bd7938c868d377a7ec80a50cffbcd) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) q) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [Ln](#ae87cf5650a832493178d34670317f2fd) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) q) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [Pow](#ab83f5fb3ebe469b474bf0ef9c7db942d) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) b, double exponent) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [Slerp](#af37ceed2775497ea43f0021ea983647f) ([Quaternion](class_open_t_d_1_1_quaternion.xhtml) q0, [Quaternion](class_open_t_d_1_1_quaternion.xhtml) q1, double t) static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) [Average](#a7ff23277e69429c16466513de0c36340) (List&lt; double &gt; w, List&lt; [Quaternion](class_open_t_d_1_1_quaternion.xhtml) &gt; q) ## <a id="properties" name="properties"></a>Properties

[Vector3d](class_open_t_d_1_1_vector3d.xhtml) [v](#a41a60e7b59c046de410f8d61d016aa9d)` [get, set]` Dimensional&lt; [ModelLength](class_open_t_d_1_1_dimension_1_1_model_length.xhtml) &gt; [s](#a429c44b1ee58b3beace1d98ef70af08d)` [get, set]` <a id="details" name="details"></a>## Detailed Description

Describes a mathematical quaternion. Used, for example, to describe material orientation in solid finite elements.

See also[OpenTD.RadCAD.FEMeshImporter](class_open_t_d_1_1_rad_c_a_d_1_1_f_e_mesh_importer.xhtml "Finite-element mesh importer.")

## Constructor &amp; Destructor Documentation

<a id="a028ca8e12f89d7ad206bc96bcb7bb11e" name="a028ca8e12f89d7ad206bc96bcb7bb11e"></a>## [◆ ](#a028ca8e12f89d7ad206bc96bcb7bb11e)Quaternion() \[1/6\]

 OpenTD.Quaternion.Quaternion  ( )   inline 





<a id="ae53ec0b8e53a51033fd62041b6e9c727" name="ae53ec0b8e53a51033fd62041b6e9c727"></a>## [◆ ](#ae53ec0b8e53a51033fd62041b6e9c727)Quaternion() \[2/6\]

 OpenTD.Quaternion.Quaternion  ( double *\_s*)   inline 





<a id="a7399036d28ce6d1858f3ac7fa85ab4e7" name="a7399036d28ce6d1858f3ac7fa85ab4e7"></a>## [◆ ](#a7399036d28ce6d1858f3ac7fa85ab4e7)Quaternion() \[3/6\]

 OpenTD.Quaternion.Quaternion  ( double *\_s*,    double *x*,    double *y*,    double *z* )  inline 





<a id="a3decca09c09435f52bebe32ecf62eb7d" name="a3decca09c09435f52bebe32ecf62eb7d"></a>## [◆ ](#a3decca09c09435f52bebe32ecf62eb7d)Quaternion() \[4/6\]

 OpenTD.Quaternion.Quaternion  ( double *\_s*,    [Vector3d](class_open_t_d_1_1_vector3d.xhtml) *\_v* )  inline 





<a id="af745d031e582e6cc8c356b10f7ff7262" name="af745d031e582e6cc8c356b10f7ff7262"></a>## [◆ ](#af745d031e582e6cc8c356b10f7ff7262)Quaternion() \[5/6\]

 OpenTD.Quaternion.Quaternion  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q*)   inline 





<a id="a2b4f8fa683e2f07bbeca424af9ca34b4" name="a2b4f8fa683e2f07bbeca424af9ca34b4"></a>## [◆ ](#a2b4f8fa683e2f07bbeca424af9ca34b4)Quaternion() \[6/6\]

 OpenTD.Quaternion.Quaternion  ( [Matrix3d](class_open_t_d_1_1_matrix3d.xhtml) *m*)   inline 





## Member Function Documentation

<a id="a7ff23277e69429c16466513de0c36340" name="a7ff23277e69429c16466513de0c36340"></a>## [◆ ](#a7ff23277e69429c16466513de0c36340)Average()

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.Average  ( List&lt; double &gt; *w*,    List&lt; [Quaternion](class_open_t_d_1_1_quaternion.xhtml) &gt; *q* )  inlinestatic 





<a id="ab95099e44eb6c565479c9dfd9bb3d1c6" name="ab95099e44eb6c565479c9dfd9bb3d1c6"></a>## [◆ ](#ab95099e44eb6c565479c9dfd9bb3d1c6)Conjugate()

 [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.Conjugate  ( )   inline 





<a id="ac26fe54cb16044b9358866248b2fc7ea" name="ac26fe54cb16044b9358866248b2fc7ea"></a>## [◆ ](#ac26fe54cb16044b9358866248b2fc7ea)DotProduct()

 double OpenTD.Quaternion.DotProduct  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q*)   inline 





<a id="ac16bd7938c868d377a7ec80a50cffbcd" name="ac16bd7938c868d377a7ec80a50cffbcd"></a>## [◆ ](#ac16bd7938c868d377a7ec80a50cffbcd)Exp()

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.Exp  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q*)   inlinestatic 





<a id="a62b5af90e9a9636ca223dbce77363df5" name="a62b5af90e9a9636ca223dbce77363df5"></a>## [◆ ](#a62b5af90e9a9636ca223dbce77363df5)Inverse()

 [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.Inverse  ( )   inline 





<a id="ae87cf5650a832493178d34670317f2fd" name="ae87cf5650a832493178d34670317f2fd"></a>## [◆ ](#ae87cf5650a832493178d34670317f2fd)Ln()

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.Ln  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q*)   inlinestatic 





<a id="abf630cdf365f4796a858cc266672f705" name="abf630cdf365f4796a858cc266672f705"></a>## [◆ ](#abf630cdf365f4796a858cc266672f705)Norm()

 double OpenTD.Quaternion.Norm  ( )   inline 





<a id="a227775089b4cd5fc18b34c5612f8b984" name="a227775089b4cd5fc18b34c5612f8b984"></a>## [◆ ](#a227775089b4cd5fc18b34c5612f8b984)Normalize()

 void OpenTD.Quaternion.Normalize  ( )   inline 





<a id="a8725b7cc9acdeee5da83aa94a0c7dd5b" name="a8725b7cc9acdeee5da83aa94a0c7dd5b"></a>## [◆ ](#a8725b7cc9acdeee5da83aa94a0c7dd5b)operator Matrix3d()

 static implicit OpenTD.Quaternion.operator [Matrix3d](class_open_t_d_1_1_matrix3d.xhtml)  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q*)   inlinestatic 





<a id="a83934c17e83994acb5cf92e5f4a4ac7f" name="a83934c17e83994acb5cf92e5f4a4ac7f"></a>## [◆ ](#a83934c17e83994acb5cf92e5f4a4ac7f)operator\*() \[1/2\]

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.operator\*  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *p*,    double *r* )  inlinestatic 





<a id="a634a0c0c7fd4d46d3d2006578a2137cf" name="a634a0c0c7fd4d46d3d2006578a2137cf"></a>## [◆ ](#a634a0c0c7fd4d46d3d2006578a2137cf)operator\*() \[2/2\]

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.operator\*  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *p*,    [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q* )  inlinestatic 





<a id="acf768bb61201fb2a5497319aa1a97fc1" name="acf768bb61201fb2a5497319aa1a97fc1"></a>## [◆ ](#acf768bb61201fb2a5497319aa1a97fc1)operator+()

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.operator+  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *p*,    [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q* )  inlinestatic 





<a id="a383278703c2e07b040aa7874a1ae0606" name="a383278703c2e07b040aa7874a1ae0606"></a>## [◆ ](#a383278703c2e07b040aa7874a1ae0606)operator-() \[1/2\]

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.operator-  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *p*,    [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q* )  inlinestatic 





<a id="a6bfe884080cf10560842fe093d2870c9" name="a6bfe884080cf10560842fe093d2870c9"></a>## [◆ ](#a6bfe884080cf10560842fe093d2870c9)operator-() \[2/2\]

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.operator-  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q*)   inlinestatic 





<a id="ae4e3e2c0fcbe9e431384600e0260082a" name="ae4e3e2c0fcbe9e431384600e0260082a"></a>## [◆ ](#ae4e3e2c0fcbe9e431384600e0260082a)operator/()

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.operator/  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *p*,    double *r* )  inlinestatic 





<a id="ab83f5fb3ebe469b474bf0ef9c7db942d" name="ab83f5fb3ebe469b474bf0ef9c7db942d"></a>## [◆ ](#ab83f5fb3ebe469b474bf0ef9c7db942d)Pow()

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.Pow  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *b*,    double *exponent* )  inlinestatic 





<a id="af37ceed2775497ea43f0021ea983647f" name="af37ceed2775497ea43f0021ea983647f"></a>## [◆ ](#af37ceed2775497ea43f0021ea983647f)Slerp()

 static [Quaternion](class_open_t_d_1_1_quaternion.xhtml) OpenTD.Quaternion.Slerp  ( [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q0*,    [Quaternion](class_open_t_d_1_1_quaternion.xhtml) *q1*,    double *t* )  inlinestatic 





## Property Documentation

<a id="a429c44b1ee58b3beace1d98ef70af08d" name="a429c44b1ee58b3beace1d98ef70af08d"></a>## [◆ ](#a429c44b1ee58b3beace1d98ef70af08d)s

 Dimensional&lt;[ModelLength](class_open_t_d_1_1_dimension_1_1_model_length.xhtml)&gt; OpenTD.Quaternion.s  getset 





<a id="a41a60e7b59c046de410f8d61d016aa9d" name="a41a60e7b59c046de410f8d61d016aa9d"></a>## [◆ ](#a41a60e7b59c046de410f8d61d016aa9d)v

 [Vector3d](class_open_t_d_1_1_vector3d.xhtml) OpenTD.Quaternion.v  getset 





---

The documentation for this class was generated from the following file:- C:/Users/mgarrett/source/repos/BuildsTdSuite/builds/TDDEV\_ALPHA/buildXX/OpenTD/**Quaternion.cs**