issue porting C++/glm/openGL to D/gl3n/openGL
WhatMeWorry via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Jan 9 18:51:57 PST 2016
Just translating some simple C++/glm/opengl tutorial code to
D/gl3n/opengl and I'm coming across more friction than I
expected. I've got a square centered at my window which is
rotated by 45 degrees (counter clockwise) and then moved to the
lower right quadrant.
// C++ glm opengl code
glm::mat4 transform;
transform = glm::translate(transform, glm::vec3(0.0f, -0.5f,
0.0f));
transform = glm::rotate(transform, 45.0f, vec3(0.0f, 0.0f,
1.0f)); // degrees
// D gl3n opengl code
mat4 transform = mat4.identity;
transform = transform.translation(vec3(0.5f, -0.5f, 0.0f));
transform = transform.rotate(0.78539, vec3(0.0f, 0.0f, 1.0f));
// radians
My D code performs the operations fine, but in the _opposite_
order.
I thought just swapping the order would fix things:
transform = transform.rotate(0.78539, vec3(0.0f, 0.0f, 1.0f));
transform = transform.translation(vec3(0.5f, -0.5f, 0.0f));
but now the square is moved to the lower right corner but no
rotation happened?
So am I using gl3n incorrectly? Are there tricks or techniques I'
missing? Is gl3n not a direct replacement for glm?
Any advice is greatly appreciated. Thanks.
More information about the Digitalmars-d-learn
mailing list