From b6d11d78e225b92722c3446e07a2a804105809b3 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Thu, 13 Dec 2012 22:50:30 +0100 Subject: [PATCH] [DEV] Start dev of the physic engine --- external/etk | 2 +- sources/ewol/compositing/Compositing.cpp | 6 +++--- sources/ewol/renderer/resources/Mesh.cpp | 18 +++++++++--------- sources/ewol/renderer/resources/Mesh.h | 6 ++---- sources/ewol/renderer/resources/MeshObj.cpp | 6 +++--- sources/ewol/widget/Scene.cpp | 6 +++--- sources/ewol/widget/Widget.cpp | 12 ++++++------ sources/ewol/widget/WidgetScrolled.cpp | 10 +++++----- 8 files changed, 32 insertions(+), 34 deletions(-) diff --git a/external/etk b/external/etk index 74a6e35f..e6af555b 160000 --- a/external/etk +++ b/external/etk @@ -1 +1 @@ -Subproject commit 74a6e35fa3de3bc5b2b0dc89992e6610db2014c2 +Subproject commit e6af555b152d01a561526bc8c5515338cec464fe diff --git a/sources/ewol/compositing/Compositing.cpp b/sources/ewol/compositing/Compositing.cpp index 04d74f0c..4d8f52fe 100644 --- a/sources/ewol/compositing/Compositing.cpp +++ b/sources/ewol/compositing/Compositing.cpp @@ -33,19 +33,19 @@ void ewol::Compositing::ResetMatrix(void) void ewol::Compositing::Translate(vec3 vect) { - m_matrixApply *= mat4::Translate(vect); + m_matrixApply *= etk::matTranslate(vect); } void ewol::Compositing::Rotate(vec3 vect, float angle) { - m_matrixApply *= mat4::Rotate(vect, angle); + m_matrixApply *= etk::matRotate(vect, angle); } void ewol::Compositing::Scale(vec3 vect) { - m_matrixApply *= mat4::Scale(vect); + m_matrixApply *= etk::matScale(vect); } diff --git a/sources/ewol/renderer/resources/Mesh.cpp b/sources/ewol/renderer/resources/Mesh.cpp index 22420018..49a33195 100644 --- a/sources/ewol/renderer/resources/Mesh.cpp +++ b/sources/ewol/renderer/resources/Mesh.cpp @@ -45,7 +45,7 @@ void ewol::Mesh::Draw(void) rotx += 0.01; roty += 0.02; rotz += 0.005; - if (m_vertices.Size()<=0) { + if (m_object.m_vertices.Size()<=0) { return; } if (NULL == m_texture1) { @@ -61,23 +61,23 @@ void ewol::Mesh::Draw(void) m_GLprogram->Use(); // set Matrix : translation/positionMatrix mat4 tmpMatrix = ewol::openGL::GetMatrix(); - tmpMatrix = mat4::Scale(vec3(100,100,100) ) - * mat4::Rotate(vec3(1,0,0), rotx) - * mat4::Rotate(vec3(0,1,0), roty)/* - * mat4::Translate(vec3(0.01,0.0,0.0)) - * mat4::Rotate(vec3(0,0,1), rotz)*/ + tmpMatrix = etk::matScale(vec3(100,100,100) ) + * etk::matRotate(vec3(1,0,0), rotx) + * etk::matRotate(vec3(0,1,0), roty)/* + * etk::matTranslate(vec3(0.01,0.0,0.0)) + * etk::matRotate(vec3(0,0,1), rotz)*/ * tmpMatrix; m_GLprogram->UniformMatrix4fv(m_GLMatrix, 1, tmpMatrix.m_mat); // TextureID m_GLprogram->SetTexture0(m_GLtexID, m_texture1->GetId()); // position : - m_GLprogram->SendAttribute(m_GLPosition, 3/*x,y,z*/, &m_vertices[0]); + m_GLprogram->SendAttribute(m_GLPosition, 3/*x,y,z*/, &m_object.m_vertices[0]); // Texture : - m_GLprogram->SendAttribute(m_GLtexture, 2/*u,v*/, &m_uvTextures[0]); + m_GLprogram->SendAttribute(m_GLtexture, 2/*u,v*/, &m_object.m_uvTextures[0]); // color : m_GLprogram->SendAttribute(m_GLColor, 4/*r,g,b,a*/, &m_coordColor[0]); // Request the draw od the elements : - glDrawArrays(GL_TRIANGLES, 0, m_vertices.Size()); + glDrawArrays(GL_TRIANGLES, 0, m_object.m_vertices.Size()); m_GLprogram->UnUse(); glDisable(GL_DEPTH_TEST); } diff --git a/sources/ewol/renderer/resources/Mesh.h b/sources/ewol/renderer/resources/Mesh.h index 53760ad2..c7094884 100644 --- a/sources/ewol/renderer/resources/Mesh.h +++ b/sources/ewol/renderer/resources/Mesh.h @@ -14,6 +14,7 @@ #include #include #include +#include namespace ewol { @@ -26,10 +27,7 @@ namespace ewol int32_t m_GLColor; int32_t m_GLtexture; int32_t m_GLtexID; - etk::Vector m_indices; - etk::Vector< vec3 > m_vertices; - etk::Vector< vec2 > m_uvTextures; - etk::Vector< vec3 > m_normals; + ephysics::MeshObject m_object; ewol::TextureFile* m_texture1; etk::Vector m_coordColor; //!< internal color of the different point public: diff --git a/sources/ewol/renderer/resources/MeshObj.cpp b/sources/ewol/renderer/resources/MeshObj.cpp index 7a404deb..01bfd5c9 100644 --- a/sources/ewol/renderer/resources/MeshObj.cpp +++ b/sources/ewol/renderer/resources/MeshObj.cpp @@ -128,9 +128,9 @@ ewol::MeshObj::MeshObj(etk::UString _fileName) : uint32_t normalIndex = indicesNormal[iii]; // Put the attributes in buffers - m_vertices.PushBack(vertices[vertexIndex-1]); - m_uvTextures.PushBack(uvTextures[uvIndex-1]); - m_normals.PushBack(normals[normalIndex-1]); + m_object.m_vertices.PushBack(vertices[vertexIndex-1]); + m_object.m_uvTextures.PushBack(uvTextures[uvIndex-1]); + m_object.m_normals.PushBack(normals[normalIndex-1]); draw::Color tmpppp(0xFFFFFFFF); draw::Colorf tmppppp(tmpppp); m_coordColor.PushBack(tmppppp); diff --git a/sources/ewol/widget/Scene.cpp b/sources/ewol/widget/Scene.cpp index 0a1a5698..3c23a303 100644 --- a/sources/ewol/widget/Scene.cpp +++ b/sources/ewol/widget/Scene.cpp @@ -153,12 +153,12 @@ void widget::Scene::GenDraw(ewol::DrawProperty displayProp) mat4 tmpProjection; if (ratio >= 1.0) { - tmpProjection = etk::Matrix4::Perspective(-ratio, ratio, -1, 1, -1, 1); + tmpProjection = etk::matPerspective(-ratio, ratio, -1, 1, -1, 1); } else { ratio = 1.0/ratio; - tmpProjection = etk::Matrix4::Perspective(-1, 1, -ratio, ratio, -1, 1); + tmpProjection = etk::matPerspective(-1, 1, -ratio, ratio, -1, 1); } - mat4 tmpScale = etk::Matrix4::Scale(vec3(m_zoom, m_zoom, m_zoom) ); + mat4 tmpScale = etk::matScale(vec3(m_zoom, m_zoom, m_zoom) ); mat4 tmpMat = tmpProjection * tmpScale; // set internal matrix system : ewol::openGL::SetMatrix(tmpMat); diff --git a/sources/ewol/widget/Widget.cpp b/sources/ewol/widget/Widget.cpp index 57b9d261..bb2f1c66 100644 --- a/sources/ewol/widget/Widget.cpp +++ b/sources/ewol/widget/Widget.cpp @@ -137,9 +137,9 @@ void ewol::Widget::GenDraw(DrawProperty displayProp) tmpOriginY, tmpclipX, m_size.y); - mat4 tmpTranslate = etk::Matrix4::Translate(vec3((float)(-tmpclipX/2 - (tmpOriginX-m_origin.x)), (float)(-m_size.y/2.0), -1.0f)); - mat4 tmpScale = etk::Matrix4::Scale(vec3(m_zoom, m_zoom, 1.0f)); - mat4 tmpProjection = etk::Matrix4::Perspective(-tmpclipX/2, tmpclipX/2, -m_size.y/2, m_size.y/2, -1, 1); + mat4 tmpTranslate = etk::matTranslate(vec3((float)(-tmpclipX/2 - (tmpOriginX-m_origin.x)), (float)(-m_size.y/2.0), -1.0f)); + mat4 tmpScale = etk::matScale(vec3(m_zoom, m_zoom, 1.0f)); + mat4 tmpProjection = etk::matPerspective(-tmpclipX/2, tmpclipX/2, -m_size.y/2, m_size.y/2, -1, 1); mat4 tmpMat = tmpProjection * tmpScale * tmpTranslate; // set internal matrix system : ewol::openGL::SetMatrix(tmpMat); @@ -154,9 +154,9 @@ void ewol::Widget::GenDraw(DrawProperty displayProp) m_origin.y, m_size.x, m_size.y); - mat4 tmpTranslate = etk::Matrix4::Translate(vec3(-m_size.x/2, -m_size.y/2, -1.0f)); - mat4 tmpScale = etk::Matrix4::Scale(vec3(m_zoom, m_zoom, 1.0f)); - mat4 tmpProjection = etk::Matrix4::Perspective(-m_size.x/2, m_size.x/2, -m_size.y/2, m_size.y/2, -1, 1); + mat4 tmpTranslate = etk::matTranslate(vec3(-m_size.x/2, -m_size.y/2, -1.0f)); + mat4 tmpScale = etk::matScale(vec3(m_zoom, m_zoom, 1.0f)); + mat4 tmpProjection = etk::matPerspective(-m_size.x/2, m_size.x/2, -m_size.y/2, m_size.y/2, -1, 1); mat4 tmpMat = tmpProjection * tmpScale * tmpTranslate; // set internal matrix system : ewol::openGL::SetMatrix(tmpMat); diff --git a/sources/ewol/widget/WidgetScrolled.cpp b/sources/ewol/widget/WidgetScrolled.cpp index d1d7ffd4..3208c0a8 100644 --- a/sources/ewol/widget/WidgetScrolled.cpp +++ b/sources/ewol/widget/WidgetScrolled.cpp @@ -351,9 +351,9 @@ void widget::WidgetScrooled::GenDraw(ewol::DrawProperty displayProp) m_origin.y, m_size.x, m_size.y); - mat4 tmpProjection = etk::Matrix4::Perspective(-m_size.x/2, m_size.x/2, -m_size.y/2, m_size.y/2, -1, 1); - mat4 tmpScale = etk::Matrix4::Scale(vec3(m_zoom, m_zoom, 1.0) ); - mat4 tmpTranslate = etk::Matrix4::Translate(vec3(-m_maxSize.x/2, -m_maxSize.y/2, -1.0) ); + mat4 tmpProjection = etk::matPerspective(-m_size.x/2, m_size.x/2, -m_size.y/2, m_size.y/2, -1, 1); + mat4 tmpScale = etk::matScale(vec3(m_zoom, m_zoom, 1.0) ); + mat4 tmpTranslate = etk::matTranslate(vec3(-m_maxSize.x/2, -m_maxSize.y/2, -1.0) ); mat4 tmpMat = tmpProjection * tmpScale * tmpTranslate; // set internal matrix system : ewol::openGL::SetMatrix(tmpMat); @@ -366,8 +366,8 @@ void widget::WidgetScrooled::GenDraw(ewol::DrawProperty displayProp) m_size.x, m_size.y); - mat4 tmpProjection = etk::Matrix4::Perspective(-m_size.x/2, m_size.x/2, -m_size.y/2, m_size.y/2, -1, 1); - mat4 tmpTranslate = etk::Matrix4::Translate(vec3( -m_maxSize.x/2, -m_maxSize.y/2, -1.0) ); + mat4 tmpProjection = etk::matPerspective(-m_size.x/2, m_size.x/2, -m_size.y/2, m_size.y/2, -1, 1); + mat4 tmpTranslate = etk::matTranslate(vec3( -m_maxSize.x/2, -m_maxSize.y/2, -1.0) ); mat4 tmpMat = tmpProjection * tmpTranslate; // set internal matrix system : ewol::openGL::SetMatrix(tmpMat);