added scale fonction in utils for 2D

This commit is contained in:
Lendemor 2016-07-24 14:18:35 +02:00
parent 7ff6bef30b
commit 1d9fc6bc54
5 changed files with 16 additions and 13 deletions

View File

@ -82,6 +82,8 @@ void Engine::update()
void Engine::start()
{
m_running = true;
for(int i = 0;i<5;i++)
m_sparrowshell->scrollUp();
while(!m_input->isCloseRequested() && m_running)
update();
}

View File

@ -39,10 +39,12 @@ void SparrowShell::out(std::string s)
void SparrowShell::scrollUp(){
if (m_index + BUFFER_DISPLAYED_NUMBER < m_buffer.size()) m_index++;
std::cout << "scroll up" << std::endl;
}
void SparrowShell::scrollDown(){
if (m_index > 0) m_index--;
std::cout << "scroll up" << std::endl;
}
void SparrowShell::update()

View File

@ -27,17 +27,16 @@ int main(){
SceneTree scene;
/* Exemple creation mesh 2D
*
*/
**/
Mesh* mesh = new Mesh();
mesh->addRectangle2D(180, 400,5,5);
mesh->addRectangle2D(180, 400,10,64);
PhongMaterial *mat = new PhongMaterial();
mat->diffuse = glm::vec3(1, 0.5, 0);
mesh->setMaterial(mat);
mesh->setDepth(1);
mesh->initGL();
scene.addObject(scene.getRootObject(),new MeshNode(mesh));
/* */
/**/
/* Exemple ajout d'un objet a la scene
*
@ -53,12 +52,10 @@ int main(){
Font* fonte_des_neiges = Loader::loadFont("../data/consolas.fnt","../data/consolas.png");
RESOURCE_ADD(fonte_des_neiges,Font,"shellfont");
MeshNode* mnode/* = new MeshNode(fonte_des_neiges->getTextMesh("Hello World!"));
scene.addObject(scene.getRootObject(),mnode)*/;
mnode = new MeshNode(fonte_des_neiges->getTextMesh("WOW", glm::vec3(0.5, 0.7, 0.2)));
mnode = new MeshNode(fonte_des_neiges->getTextMesh("Portez ce vieux whisky au juge blond qui fume.", glm::vec3(0.5, 0.7, 0.2)));
// mnode->setTransform(glm::rotate(glm::translate(glm::mat4(), glm::vec3(70, 30, 0)), 0.4f, glm::vec3(0, 0, 1)));
utils::setPosition2D(mnode,glm::vec2(180, 400));
scene.addObject(scene.getRootObject(),mnode);
@ -80,7 +77,7 @@ int main(){
engine.outputShell("Hello World!");
engine.outputShell("Starting test :");
for(int i = 0; i < 15; i++){
for(int i = 0; i < 23; i++){
engine.outputShell(std::to_string(i));
}

View File

@ -20,11 +20,12 @@ void utils::setPosition2D(MeshNode *mnode, glm::vec2 pos){
}
void utils::resize2D(MeshNode *mnode, glm::vec2 dim, glm::vec2 new_dim){
glm::vec2 ratio(new_dim / dim);
scale2D(mnode,ratio);
}
void utils::scale2D(MeshNode* mnode, glm::vec2 ratio){
glm::mat4 tr = mnode->getTransform();
glm::vec3 pos(tr[3]);
glm::vec2 ratio = new_dim / dim;
tr = glm::scale(tr, glm::vec3(1,ratio.y,1));
glm::vec3 new_pos(tr[3]);
tr = glm::translate(tr,pos-new_pos);
tr = glm::scale(tr, glm::vec3(ratio.x,ratio.y,1));
mnode->setTransform(tr);
}

View File

@ -12,6 +12,7 @@ namespace utils
std::vector<std::string> split(const std::string &line, char sep);
void setPosition2D(MeshNode*, glm::vec2);
void resize2D(MeshNode*, glm::vec2, glm::vec2);
void scale2D(MeshNode*, glm::vec2);
}
#endif // UTILS_H