# How can I apply a rotatio matrix to a model matrix

## Recommended Posts

I have the next code:

[CODE]
Mesh* Cube::mesh;

GLuint Cube::ShaderIds[3] = { 0 },
Cube::TextureId;

glm::mat4 Cube::ModelMatrix = glm::mat4(1.0); //IDENTITY MATRIX

GLuint Cube::ModelMatrixUniformLocation,
Cube::Tex0Loc;

Cube::Cube()
{
//ctor
}

glm::vec3 Cube::getPosition(void)
{
return position;
}
void Cube::setPosition(glm::vec3 value)
{
position = value;
}

glm::vec3 Cube::getEulerRotation(void)
{
return MatToVec3(rotationMatrix);
}
void Cube::setEulerRotation(float angle, glm::vec3 axis)
{
rotationMatrix = glm::rotate(rotationMatrix, angle, axis);
}

void Cube::Initialize(void)
{
ModelMatrix = glm::mat4(1.0);
setVisible(true);
}

{

//Obtenemos las uniform locations de las matrices y las texturas
ExitOnGLError("ERROR: Could not get the uniform locations");

// Cargamos una textura
Tex0Loc = shader->GetUniformLocation("texture0"); //obtenemos la localizacion del parametro texture0
}

void Cube::Update(void)
{
[b] // I call to SetEulerRotation from here[/b]
setEulerRotation(90.0f * getParent()->getEngine()->deltaTime, glm::vec3(0,1,0));
}
void Cube::Draw(void)
{

[b] //I want apply the rotation matrix to model matrix here.[/b]
/*
ModelMatrix = glm::scale(
glm::mat4(1.0f),
glm::vec3(.5f)
);*/

//ModelMatrix = glm::rotate(ModelMatrix, 90.0f * getParent()->getEngine()->deltaTime, glm::vec3(0,1,0));
// Apply the model matrix

glUniformMatrix4fv(ModelMatrixUniformLocation, 1, GL_FALSE, glm::value_ptr(ModelMatrix));
ExitOnGLError("ERROR: Could not set the model matrix");

// Apply the view matrix
Camera *cam = (Camera*)getParent()->getEngine()->services.GetService(0);
if(cam == NULL)
{
ExitOnError("ERROR: Camara no colocada en el World");
}
glUniformMatrix4fv(getParent()->getEngine()->ViewMatrixUniformLocation, 1, GL_FALSE, glm::value_ptr(cam->getView()));
ExitOnGLError("ERROR: Could not set the view matrix");

// Aplicamos la matrix de proyeccion
glUniformMatrix4fv(getParent()->getEngine()->ProjectionMatrixUniformLocation, 1, GL_FALSE, glm::value_ptr(cam->getProjection()));
ExitOnGLError("ERROR: Could not set the projection matrix");

glUniform1i(Tex0Loc, 0);

mesh->Draw();
}[/CODE]
I want to apply the rotationMatrix (set in 'SetEulerRotation' method) to the ModelMatrix in the Draw method, but i don´t know how it does.
Can anybody help me?

##### Share on other sites
Ok, i found how i can do it xDD. Sorry for the inconvenience.

I must set ModelMatrix = rotationMatrix.

Stupid error....