Changelog for geomancy-0.3.0.0
Changelog for geomancy
0.3.0.0
[0]releases without row/col-major, handedness, and counter/clockwise confusion.
This release brings sanity and consistency around the transform stack.
Transforms have proper col-major definitions.- Operation ordering follows the GLSL convention.
- The composition order is
(p <> v <> m <> ...)(from global to local). Reverse your transforms to adjust. - The application order is
m !* v(with the operators becoming infixr 5, just under the<>). It will doMᵀ * vinside for SIMD reasons and to match what GLSL does for itsM * vops.
- The composition order is
Geomancy.Vulkan.Projectionis right-handed, BUT produces reverse-depth range ([1; 0], In 3D infinite-Z converges to 0).- Replace your depth tests with
OP_GREATERand clear to0.0- get better precision for your migration troubles.
- Replace your depth tests with
Geomancy.Vulkan.Viewis right-handed, with +Z being forward.- The intended up vector is still
vec3 0 (-1) 0-- +Y down. Silly as it sounds, this matches the XY plane of the window with XY plane in front of a "first person" camera.
- The intended up vector is still
- Axis rotations (using
rotateQ) will appear clockwise when looking along the axis. - Angle rotations follow Tait-Bryan angles (heading/elevation/bank or yaw/pitch/roll) in the y-x-z frame.
rotateZ (time * rate)will follow the clock hands in 2D scenes and roll in 3D.rotateXwill follow the sun from sunrise to sunset, pitching UP / increasing elevation.rotateYwill turn you right, increasing yaw / heading eastwards.
- You're of course free to define your own transforms, just copy the modules and tune to your liking. Just make sure that you use matching row/column constructors and the math layer will do the rest, fast.
- Added
webcolor-labelsinstances for UVec3/Vec3/Vec4.
0.2.6.0
Geomancy.Gl.Blockextract togl-blockpackage asGraphics.Gl.Block.- Added
convertfunction to vector modules to facilitate type-changing operations like rounding. - Added
Ixinstances for integral vectors. - Added
dotfor integral vectors.
0.2.5.0
- Added Geomancy.Gl.Block to derive packed/std140/std430 layouts generically.
Originally a part of the unpublished
glowpackage in thecodexproject by Edward Kmett. Addptrdiff-0to your stack resolvers.
0.2.4.2
- Support ARM/aarch64 SIMD.
0.2.4.1
- Support simple-affine-space-0.2
0.2.4.0
A bunch of experimental code to see what sticks.
- Added
simple-affine-spaceinstances.- The classes are re-exported from
Geomancy, bringing stuff likedotandnormalize.
- The classes are re-exported from
- Added
mono-traversableinstances andGeomancy.Elementwisewrapper. - Added
Pointwrapper andPointNaliases. - Added
Geomancy.Interpolatewith generic linear, quadratic and cubic functions.- ⚠️
VecN.lerphas wrong (flipped) order of vector arguments. This is fixed inlinear.
- ⚠️
- Added
Geomancy.Swizzleoverloaded labels. - Added
Geomancy.Gl.Funswith kinda-GLSL math functions, appropriately overloaded.
0.2.3.0
- Vec4 moved to ByteArray#.
- Mat4 !* Vec4 is now SIMD too.
0.2.2.4
- Add Transform trees.
0.2.2.3
- Add IVec and UVec 32-bit integer vectors.
0.2.2.2
- Fixed using Transform.apply with projection inverses.
0.2.2.1
- Add Vec2.
- Add pattern synonyms to
Geomancyre-exports. - Add Fractional instances.
- Add conversions from tuples and lower-dimension vecs.
0.2.2.0
- Add pattern synonym alternatives to
withVecN. - Add Mat4 converstion from
Linear.M44.
- Hide
toListandtoListTrans.
- Add
toList2dand publish its element-order wrappers.
0.2.1.0
Transform rewrite
- Change perspective FoV to radians.
- Add
infinitePerspective. - Add
Transform.inverse.
- Hide
mat4,withMat4.
0.2.0.0
Mat4 rewrite
- Add
rowMajor,withRowMajor,toListRowMajor. - Add
colMajor,withColMajor,toListColMajor. - Add
Mat4.inverse.
- Expose
matrixProduct.
- Add
scalarMultiply. - Add
Mat4.(!*)to use withVec4.
- Extract transformations to
Geomancy.Transformand use column notation.
- Add
Transform.(!.)andapplyto use withVec3.
- Rename
scaletoscale3.
- Add uniform
scale. - Add
scaleXYfor flat meshes.
- Rename
mkTransformationtodirPos.
- Add
rotateQviadirPoswith empty translation. - Add
Vec3.Packednewtype without extra padding.
0.1.3.0
- Update tests
- Add
zipWith
- Rename
elementwisetopointwise - Rename
colMajortotoList - Rename
rowMajortotoListTrans
0.1.2.1
- Add Mat4 multiplication test via
linear - Add
elementwise,colMajor,rowMajor
0.1.2.0
- Move projections and views to Vulkan namespace.
0.1.1.2
- Fix bug in quaternion rotationBetween.
0.1.1.1
- Add lookAtUp and rotationBetween.