tgRenderModel.cpp
Go to the documentation of this file.
00001 
00002 #include <blort/TomGine/tgRenderModel.h>
00003 #include <blort/TomGine/tgShapeCreator.h>
00004 #include <GL/gl.h>
00005 
00006 using namespace TomGine;
00007 
00008 tgRenderModel::tgRenderModel(){
00009         m_material.Random();
00010         m_bsmodel = 0;
00011 }
00012 
00013 tgRenderModel::tgRenderModel(const tgModel& model){
00014         m_vertices = model.m_vertices;
00015         m_faces = model.m_faces;
00016         m_bsmodel = 0;
00017         m_material.Random();
00018 }
00019 
00020 tgRenderModel::~tgRenderModel(){
00021         if(m_bsmodel)
00022                 delete(m_bsmodel);
00023 }
00024 
00025 void tgRenderModel::ApplyMaterial(){
00026         glEnable(GL_LIGHTING);
00027         glMaterialfv(GL_FRONT,GL_AMBIENT,m_material.ambient);
00028         glMaterialfv(GL_FRONT,GL_DIFFUSE,m_material.diffuse);
00029         glMaterialfv(GL_FRONT,GL_SPECULAR,m_material.specular);
00030         glMaterialfv(GL_FRONT,GL_SHININESS,&m_material.shininess);
00031         glColor4f(m_material.color.x, m_material.color.y, m_material.color.z, m_material.color.w);
00032 }
00033 
00034 void tgRenderModel::ApplyColor(){
00035         glColor4f(m_material.color.x, m_material.color.y, m_material.color.z, m_material.color.w);
00036 }
00037 
00038 
00039 void tgRenderModel::DrawFaces(){
00040         DrawFaces(true);
00041 }
00042 
00043 void tgRenderModel::DrawFaces(bool lighting){
00044         if(lighting){
00045                 ApplyMaterial();
00046         }else{
00047                 glDisable(GL_LIGHTING);
00048                 glColor4f(m_material.color.x, m_material.color.y, m_material.color.z, m_material.color.w);
00049         }       
00050         
00051         m_pose.Activate();
00052         tgModel::DrawFaces();
00053         m_pose.Deactivate();
00054 }
00055 
00056 void tgRenderModel::DrawNormals(float normal_length){
00057         m_pose.Activate();
00058           tgModel::DrawNormals(normal_length);
00059         m_pose.Deactivate();
00060 }
00061 
00062 void tgRenderModel::DrawBoundingSphere(){
00063         if(!m_bsmodel){
00064                 m_bsmodel = new tgModel();
00065                 tgShapeCreator creator;
00066                 creator.CreateSphere(*m_bsmodel, m_bs.radius, 2, ICOSAHEDRON);
00067                 if(!m_bsmodel)
00068                         return;
00069         }else{
00070         
00071           m_pose.Activate();
00072                   glPushMatrix();
00073                   glTranslatef(m_bs.center.x, m_bs.center.y, m_bs.center.z);
00074                   m_bsmodel->DrawFaces();
00075                   glPopMatrix();
00076           m_pose.Deactivate();
00077         }
00078 }


blort
Author(s): Thomas Mörwald , Michael Zillich , Andreas Richtsfeld , Johann Prankl , Markus Vincze , Bence Magyar
autogenerated on Wed Aug 26 2015 15:24:12