File include/fg2/fg2.h changed (mode: 100755) (index a2f3ce4..d5d18e8) |
... |
... |
void updateMesh( Mesh &mesh, std::vector<Vertex> &vertices, std::vector<Index> & |
516 |
516 |
mesh.indices = indices; |
mesh.indices = indices; |
517 |
517 |
} |
} |
518 |
518 |
|
|
519 |
|
void drawMesh( Mesh &mesh, linalg::mat<double,4,4> modelMat, linalg::mat<double,4,4> viewMat, linalg::mat<double,4,4> projMat ){ |
|
520 |
|
if( !mesh.success ){ |
|
521 |
|
return; |
|
522 |
|
} |
|
523 |
|
|
|
|
519 |
|
// Get the transforms ready and upload them to the graphics API. |
|
520 |
|
void uploadModelTransforms( const linalg::mat<double,4,4> &modelMat, const linalg::mat<double,4,4> &viewMat, const linalg::mat<double,4,4> &projMat ){ |
524 |
521 |
linalg::mat<double,4,4> mv = linalg::mul( linalg::inverse( viewMat ), modelMat ); |
linalg::mat<double,4,4> mv = linalg::mul( linalg::inverse( viewMat ), modelMat ); |
525 |
522 |
linalg::mat<double,4,4> mvp = linalg::mul( projMat, mv ); |
linalg::mat<double,4,4> mvp = linalg::mul( projMat, mv ); |
526 |
523 |
linalg::mat<double,4,4> normal = linalg::transpose( linalg::inverse( modelMat ) ); |
linalg::mat<double,4,4> normal = linalg::transpose( linalg::inverse( modelMat ) ); |
|
... |
... |
void drawMesh( Mesh &mesh, linalg::mat<double,4,4> modelMat, linalg::mat<double, |
561 |
558 |
viewMat[3][1] - modelMat[3][1], |
viewMat[3][1] - modelMat[3][1], |
562 |
559 |
viewMat[3][2] - modelMat[3][2] |
viewMat[3][2] - modelMat[3][2] |
563 |
560 |
); |
); |
|
561 |
|
} |
|
562 |
|
|
|
563 |
|
void drawMesh( Mesh &mesh, linalg::mat<double,4,4> modelMat, linalg::mat<double,4,4> viewMat, linalg::mat<double,4,4> projMat ){ |
|
564 |
|
if( !mesh.success ) return; |
|
565 |
|
|
|
566 |
|
uploadModelTransforms( modelMat, viewMat, projMat ); |
564 |
567 |
|
|
565 |
568 |
glBindBuffer( GL_ARRAY_BUFFER, mesh.buffers[0] ); |
glBindBuffer( GL_ARRAY_BUFFER, mesh.buffers[0] ); |
566 |
569 |
glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, mesh.buffers[1] ); |
glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, mesh.buffers[1] ); |
File include/fg3/fg3.h changed (mode: 100644) (index 9a8e24e..78dbb01) |
... |
... |
void updateMesh( Mesh &mesh, std::vector<Vertex> &vertices, std::vector<Index> & |
731 |
731 |
mesh.indices = indices; |
mesh.indices = indices; |
732 |
732 |
} |
} |
733 |
733 |
|
|
734 |
|
void drawMesh( Mesh &mesh, linalg::mat<double,4,4> modelMat, linalg::mat<double,4,4> viewMat, linalg::mat<double,4,4> projMat ){ |
|
735 |
|
if( !mesh.success ) return; |
|
736 |
|
|
|
|
734 |
|
// Get the transforms ready and upload them to the graphics API. |
|
735 |
|
void uploadModelTransforms( const linalg::mat<double,4,4> &modelMat, const linalg::mat<double,4,4> &viewMat, const linalg::mat<double,4,4> &projMat ){ |
737 |
736 |
linalg::mat<double,4,4> mv = linalg::mul( linalg::inverse( viewMat ), modelMat ); |
linalg::mat<double,4,4> mv = linalg::mul( linalg::inverse( viewMat ), modelMat ); |
738 |
737 |
linalg::mat<double,4,4> mvp = linalg::mul( projMat, mv ); |
linalg::mat<double,4,4> mvp = linalg::mul( projMat, mv ); |
739 |
738 |
linalg::mat<double,4,4> normal = linalg::transpose( linalg::inverse( modelMat ) ); |
linalg::mat<double,4,4> normal = linalg::transpose( linalg::inverse( modelMat ) ); |
|
... |
... |
void drawMesh( Mesh &mesh, linalg::mat<double,4,4> modelMat, linalg::mat<double, |
774 |
773 |
viewMat[3][1] - modelMat[3][1], |
viewMat[3][1] - modelMat[3][1], |
775 |
774 |
viewMat[3][2] - modelMat[3][2] |
viewMat[3][2] - modelMat[3][2] |
776 |
775 |
); |
); |
|
776 |
|
} |
|
777 |
|
|
|
778 |
|
// Draw the mesh. |
|
779 |
|
void drawMesh( Mesh &mesh, linalg::mat<double,4,4> modelMat, linalg::mat<double,4,4> viewMat, linalg::mat<double,4,4> projMat ){ |
|
780 |
|
if( !mesh.success ) return; |
|
781 |
|
|
|
782 |
|
uploadModelTransforms( modelMat, viewMat, projMat ); |
777 |
783 |
|
|
778 |
784 |
// Switch graphics memory to the VAO. |
// Switch graphics memory to the VAO. |
779 |
785 |
glBindVertexArray( mesh.vao[0] ); |
glBindVertexArray( mesh.vao[0] ); |