On 17 January 2012 14:43, David <d@dav1d.de> wrote:
Am 17.01.2012 05:31, schrieb Kiith-Sa:

David wrote:

Am 16.01.2012 03:54, schrieb JoeCoder:
On 1/15/2012 1:42 PM, Walter Bright wrote:

A nice vector math library for D that puts us competitive will be a nice
addition to Phobos.

The gl3n library might be something good to build on:
https://bitbucket.org/dav1d/gl3n

It looks to be a continuation of the OMG library used by Deadlock, and
is similar to the glm (http://glm.g-truc.net) c++ library which emulates
glsl vector ops in software.

We'd need to ask if it can be re-licensed from MIT to Boost.
Hi,

that's definitly possible! But to be honest, I don't  think putting gl3n
into phobos is a good idea. Why does phobos, the std. lib, need a
vector-lib? I haven't seen any other language with something like gl3n
in the std. lib. Also I used my own PEP-8, C (K&R with spaces) style, it
would be a real pain changing this to the Phobos style. One more point
is, that it's not just a Vector-lib, it also does Matrix-,
Quaternion-math, interpolation and implements some other useful
mathematical functions (as found in GLSL).
Of course I am open to a discussion.

PS:// I already talked with Manu about this topic, and I don't wait too
long, gl3n will have core.simd support soon.

gl3n has a really good API with regards to game development
(resembling GLSL helps), although I guess changing to a more Phobos
style might be needed for inclusion. I think having it in the standard
library would be extremely useful, though - no need to implement it myself
then. Typical matrices used in gamedev (4x4 etc) woud be really useful as
well (as said before, I'd even like stuff like AABBoxes, but let's go for
vectors/matrices/quaternions first .
AABB are also planed for gl3n.

Yeah I probably wouldn't put anything that high level in a standard library. Everyone will want a slightly different flavour.
I think linear algebra with vectors, matrices, quats is about the fair extent of a std lib. That stuff is pretty un-debatable, but beyond that, it starts getting very subjective or context specific. Better left for higher level libraries that may also integrate with renderers/physics systems/etc.