npm package: @intelligentgraphics/3d.ig.math
Description: IG.Math
Latest version: 1.1.1

# IG.Math

## Build

Node module package:

```console
yarn dist
```

Interactor package:

```console
yarn interactor
```

### Namespaces

You can use the following modules:

| Namespace              | Description                                                                       |
| ---------------------- | :-------------------------------------------------------------------------------- |
| IG.Math                | Global space functions like Rad/Deg and Polar/Cartesian conversion, ...           |
| IG.Math.Bounds         | Bounding Boxes                                                                    |
| IG.Math.Euler          | Calculations with euler angles                                                    |
| IG.Math.Line           | A line, consisting of an origin and a direction                                   |
| IG.Math.LinearAlgebra  | Various convenience functions                                                     |
| IG.Math.MathS          | Safe Math functions to avoid getting NaN                                          |
| IG.Math.Matrix3        | 3x3 Matrix functions                                                              |
| IG.Math.Matrix4        | 4x4 Matrix functions                                                              |
| IG.Math.Plane          | A plane, described by its normal and a point that lies in it                      |
| IG.Math.Quaternion     | special Vector4 describing a rotation                                             |
| IG.Math.Ray            | A ray, consisting of an origin and a direction                                    |
| IG.Math.Transformation | The transformation of an object consists of a position and 3 rotations in radians |
| IG.Math.Vector2        | {x, y} Vector functions                                                           |
| IG.Math.Vector3        | {x, y, z} Vector functions                                                        |
| IG.Math.Vector4        | {x, y, z, w} Vector functions                                                     |

### Coding Style

-   Modules: PascalCase
-   Types/Classes: PascalCase
-   Functions/Member: lowerCamelCase
-   in place functions return void and have inPlace in their function name

## History

### 1.1.1

-   include jsdoc comments in bundled declaration output

### 1.1.0

-   change Euler.fromQuaternion to Algorithm via Matrix (similar to ThreeJS) fixes Lutz Cushion bug ( ok @DC)

### 1.0.3

-   1.0.2 Quaternion.lookAt & Vector3.multiplyWithMatrix4Right
-   Math: working lookAt with quaternions

### 1.0.2

-   default Package.json Type is "Interactor" now
-   new Quaternion lookAt function
-   new version of Vector3.multiplyWithMatrix4() for updated matrix4 transformation called multiplyWithMatrix4Right()

### 1.0.1

-   clamp asin input to -1 ... +1 for quaternion -> Euler transformation
-   add more tests for questionable or plain wrong behaviour
-   readd matrix fixes including new tests, no change of traditional behaviour
-   unify rotation matrix creation

### 1.0.0

-   fixed lookAt function
-   change lookAt function for use with other base
-   updated comments and tests
-   Matrix4.lookAt() fix for negative z-values & license
-   Matrix4 lookAt function
-   added version logging and minification

### 1.0.0-alpha.0

-   initial release