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() void Engine::start()
{ {
m_running = true; m_running = true;
for(int i = 0;i<5;i++)
m_sparrowshell->scrollUp();
while(!m_input->isCloseRequested() && m_running) while(!m_input->isCloseRequested() && m_running)
update(); update();
} }

View File

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

View File

@ -27,10 +27,9 @@ int main(){
SceneTree scene; SceneTree scene;
/* Exemple creation mesh 2D /* Exemple creation mesh 2D
* **/
*/
Mesh* mesh = new Mesh(); Mesh* mesh = new Mesh();
mesh->addRectangle2D(180, 400,5,5); mesh->addRectangle2D(180, 400,10,64);
PhongMaterial *mat = new PhongMaterial(); PhongMaterial *mat = new PhongMaterial();
mat->diffuse = glm::vec3(1, 0.5, 0); mat->diffuse = glm::vec3(1, 0.5, 0);
mesh->setMaterial(mat); mesh->setMaterial(mat);
@ -53,12 +52,10 @@ int main(){
Font* fonte_des_neiges = Loader::loadFont("../data/consolas.fnt","../data/consolas.png"); Font* fonte_des_neiges = Loader::loadFont("../data/consolas.fnt","../data/consolas.png");
RESOURCE_ADD(fonte_des_neiges,Font,"shellfont"); RESOURCE_ADD(fonte_des_neiges,Font,"shellfont");
MeshNode* mnode/* = new MeshNode(fonte_des_neiges->getTextMesh("Hello World!")); MeshNode* mnode/* = new MeshNode(fonte_des_neiges->getTextMesh("Hello World!"));
scene.addObject(scene.getRootObject(),mnode)*/; scene.addObject(scene.getRootObject(),mnode)*/;
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 = new MeshNode(fonte_des_neiges->getTextMesh("WOW", 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))); // 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)); utils::setPosition2D(mnode,glm::vec2(180, 400));
scene.addObject(scene.getRootObject(),mnode); scene.addObject(scene.getRootObject(),mnode);
@ -80,7 +77,7 @@ int main(){
engine.outputShell("Hello World!"); engine.outputShell("Hello World!");
engine.outputShell("Starting test :"); engine.outputShell("Starting test :");
for(int i = 0; i < 15; i++){ for(int i = 0; i < 23; i++){
engine.outputShell(std::to_string(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){ 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::mat4 tr = mnode->getTransform();
glm::vec3 pos(tr[3]); tr = glm::scale(tr, glm::vec3(ratio.x,ratio.y,1));
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);
mnode->setTransform(tr); mnode->setTransform(tr);
} }

View File

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