```
using namespace glm;
int main()
{
glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f);
glm::mat4 trans;
trans = glm::translate(trans, glm::vec3(1.0f, 1.0f, 0.0f));
vec = trans * vec;
std::cout << vec.x << vec.y << vec.z << std::endl;
std::cout<<"snippet is supposed to be 2 1 0";
return 0;
}
```

The result is supposed to be 2 1 0. Instead I get:

-1.18134e-0111.26952e+0349.56182e+033

What gives?

I get 210. Does the code compile without warnings?

I’m also getting 210. Here’s my console output:

210

snippet is supposed to be 2 1 0

Your code looks right in printing out 210 for your vec printing line. Maybe a recompile will do? My only other thought is using a new set of glm include files, maybe you might’ve accidentally modified one of them.

[QUOTE=DragonautX;1289471]I’m also getting 210. Here’s my console output:

Your code looks right in printing out 210 for your vec printing line. Maybe a recompile will do? My only other thought is using a new set of glm include files, maybe you might’ve accidentally modified one of them.[/QUOTE]

I’ve cleaned the worksite, restarted the IDE, and, restarted the machine. Same result. Open to any ideas.

UPDATE: ran the program on Qt - same result.

```
#define GLM_ENABLE_EXPERIMENTAL
#include <iomanip>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtx/transform.hpp>
#include "glm/gtx/string_cast.hpp"
#include <glm/gtc/type_ptr.hpp>
#include <iostream>
using namespace glm;
int main()
{
glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f);
glm::mat4 trans;
trans = glm::translate(trans, glm::vec3(1.0f, 1.0f, 0.0f));
std::cout << vec.x << vec.y << vec.z << std::endl;
vec = trans * vec;
std::cout << vec.x << vec.y << vec.z << std::endl;
std::cout<<"snippet is supposed to be 2 1 0";
return 0;
}
```

doing a little debugging it looks like the numbers get trashed in this step:

```
vec = trans * vec;
```

I’ve put the extended includes for brevity; maybe something is happening there?

Yay:

From the tutorial site:

Since GLM version 0.9.9, GLM default initializates matrix types to a 0-initalized matrix, instead of the identity matrix. From that version it is required to initialize matrix types as: glm::mat4 mat = glm::mat4(1.0f). For consistency with the tutorials’ code it’s advised to use a version of GLM lower than 0.9.9 or initialize all matrices as mentioned above.

```
using namespace glm;
int main()
{
glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f);
std::cout << vec.x << vec.y << vec.z << std::endl;
glm::mat4 trans = glm::mat4(1.0);
trans = glm::translate(trans, glm::vec3(1.0f, 1.0f, 0.0f));
std::cout << vec.x << vec.y << vec.z << std::endl;
vec = trans * vec;
std::cout << vec.x << vec.y << vec.z << std::endl;
std::cout<<"snippet is supposed to be 2 1 0";
return 0;
}
```

output:

100

100

210

snippet is supposed to be 2 1 0