[DEV] Start dev of the physic engine
This commit is contained in:
parent
28a044fb00
commit
b6d11d78e2
2
external/etk
vendored
2
external/etk
vendored
@ -1 +1 @@
|
||||
Subproject commit 74a6e35fa3de3bc5b2b0dc89992e6610db2014c2
|
||||
Subproject commit e6af555b152d01a561526bc8c5515338cec464fe
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include <ewol/renderer/resources/Image.h>
|
||||
#include <ewol/renderer/resources/Shader.h>
|
||||
#include <ewol/renderer/resources/Program.h>
|
||||
#include <ePhysics/MeshObject.h>
|
||||
|
||||
namespace ewol
|
||||
{
|
||||
@ -26,10 +27,7 @@ namespace ewol
|
||||
int32_t m_GLColor;
|
||||
int32_t m_GLtexture;
|
||||
int32_t m_GLtexID;
|
||||
etk::Vector<uint32_t> 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<draw::Colorf> m_coordColor; //!< internal color of the different point
|
||||
public:
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user