GeomMath.InvertSafe should now be used instead of Matrix3 and Matrix4 Invert functions. This is because these functions will throw an exception if the matrix is singular (has a scale componenet of zero). Interestingly enough, the OpenTK matrix "InvertED" function DOES check the determinant to avoid this exception.
Fixed ShowUV menu item not using CheckedChanged event, and also having its default state set to true.
Added EntityBase.WorldOrigin property, which extracts its world translation.
Added GeomMath.BoxIntersect2 which takes a center and size instead of min and max.
Added Scene WorldToScreenPoint and ScreenToWorldPoint.
Added rotate and scale gizmos (can be changed by pressing Ctrl+G while the openTk control is focused, I'll add menu items later).
Currently new gizmos only act based off the model's local transform. So using the X scale will only increase X scale, even if it's rotated 90deg. The same goes for the Translate gizmo, its rotation will now point towards the rotation of the parent model (functionally it already behaved this way, just not visually).
Pressing right click while using a gizmo will cancel its action.
Gizmo actions no longer accumulate change, but calculate change from the same start point every update, this means that you'll always get the same result at the same mouse position.
Gizmo rotation is aligned where grid size = 1 -> 1 degree.
Gizmo scale is aligned where grid size = 1 -> 0.05 scale.