diff --git a/engine3D/scene.cpp b/engine3D/scene.cpp index f32121f..561e55c 100644 --- a/engine3D/scene.cpp +++ b/engine3D/scene.cpp @@ -111,7 +111,9 @@ Scene::Scene(glm::vec3 position,float angle,float hwRelation,float near, float f { shaders[shaderIndx]->Bind(); shaders[shaderIndx]->Update(cameras[0]->GetViewProjection()*glm::scale(glm::vec3(10,10,10)),Normal*glm::scale(glm::vec3(10,10,10)),0); - axisMesh->draw(GL_LINES); //main axis + if (axisMesh->meshExists()) { + axisMesh->draw(GL_LINES); //main axis + } } } diff --git a/engine3D/shape.cpp b/engine3D/shape.cpp index 1b80388..53b40b5 100644 --- a/engine3D/shape.cpp +++ b/engine3D/shape.cpp @@ -66,12 +66,25 @@ void Shape::addLineMesh(LineVertex* vertices, unsigned int numVertices,unsigned void Shape::draw(int mode) { //transformations - if(tex) + if (tex) { tex->Bind(); - if(mesh) + } + else { + std::cerr << "Warning: No texture bound." << std::endl; + } + if (mesh) { mesh->Draw(mode); - if(lineMesh) + } + else { + std::cerr << "Error: mesh is not initialized." << std::endl; + } + + if (lineMesh) { lineMesh->Draw(); + } + else { + std::cerr << "Error: lineMesh is not initialized." << std::endl; + } } Shape::~Shape(void) @@ -90,4 +103,8 @@ Shape::~Shape(void) void Shape::getPoints(std::list &pList) { +} + +bool Shape::meshExists() { + return (mesh != nullptr); } \ No newline at end of file diff --git a/engine3D/shape.h b/engine3D/shape.h index 7d2a14e..ff509ee 100644 --- a/engine3D/shape.h +++ b/engine3D/shape.h @@ -24,6 +24,7 @@ class Shape : public MovableGLM void addLineMesh(LineVertex* vertices, unsigned int numVertices,unsigned int* indices, unsigned int numIndices); void draw(int mode); void getPoints(std::list &pList); + bool meshExists(); virtual ~Shape(void); };