Josip
Josip
In [this](https://github.com/bjornbytes/lovr-docs/pull/67/commits/b9dff0c513922b300d1d21fd41a1ab3e9c7c0be6) implementation of mirror (line 55) I arrived at a different method: Transform(mirrorPose) * FlipZ(n) * Transform(mirrorPose:invert()) where FlipZ is a simple `:scale(1, 1, -1)` operation. This method worked...
This proposal would take care of `Mat4:mul(Vec3)` mutating the vec3 instead of mat4, but the other issue is that `mul` performs semantically different operations. I would still rather apply rotation...
I've adapted this style of working with math heavy graphics: ```lua local tvec1, tvec2 = vec3(), vec3() local tmat = mat4() for i, mesh in ipairs(geometry) do tmat:target(tvec1:set(...), tvec2:set(...)) mesh:draw(tmat)...
I notice there are differences in the ways our `drawCollider` functions render the shapes. My version seems to match the underlying physics simulation. You could try to switch between the...
I'm iterating through shapes and using `dMassAdd` to arrive at composite mass and inertia tensor. I've ran into this ODE limitation: > When assigning a mass to a rigid body,...
In my experience you don't really want your colliders to be offset from point of mass. It makes applying forces and torques harder. For instance, if you apply force with...
Not reproducible on Linux with IntelHD, the floor is drawn in all cases.
I gave this some more thought. Mutating vs non-mutating is a pretty clean cut. Using methods on objects always changes those objects only. Using meta-method operators always produces temporary object...
The second option would result in more readable code. Imagining math-heavy function written against first option, it would be full of `:apply()` calls and we'd have to track down types...
My 2 cents. Proposed action framework is nice, but introduces new syntax to keep in head, and hidden camel casing rules will bite beginners. Additionally, if you fetch one axes...