• Create Account

How can I apply a rotatio matrix to a model matrix

Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

#1ShotoReaper  Members   -  Reputation: 149

Like
0Likes
Like

Posted 15 December 2012 - 11:05 AM

I have the next 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();
}
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?

#2ShotoReaper  Members   -  Reputation: 149

Like
0Likes
Like

Posted 15 December 2012 - 11:48 AM

Ok, i found how i can do it xDD. Sorry for the inconvenience.

I must set ModelMatrix = rotationMatrix.

Stupid error....

Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

PARTNERS