From cb7db63e666a9928fcaa069edcd43756bc7ba132 Mon Sep 17 00:00:00 2001 From: Manindra de Mel Date: Thu, 9 May 2024 07:31:40 +1000 Subject: [PATCH 1/2] null pointer checks --- engine3D/scene.cpp | 4 +++- engine3D/shape.cpp | 23 ++++++++++++++++++++--- engine3D/shape.h | 1 + 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/engine3D/scene.cpp b/engine3D/scene.cpp index f32121f..9ef8fff 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->getMesh()) { + axisMesh->draw(GL_LINES); //main axis + } } } diff --git a/engine3D/shape.cpp b/engine3D/shape.cpp index 1b80388..6a07349 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::getMesh() { + return (mesh == nullptr); } \ No newline at end of file diff --git a/engine3D/shape.h b/engine3D/shape.h index 7d2a14e..e6c4361 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 getMesh(); virtual ~Shape(void); }; From 23d88cc3b9d4c39b5629a2c1dbfc29e0eac4c0da Mon Sep 17 00:00:00 2001 From: Manindra de Mel Date: Thu, 9 May 2024 07:34:49 +1000 Subject: [PATCH 2/2] update naming --- engine3D/scene.cpp | 2 +- engine3D/shape.cpp | 4 ++-- engine3D/shape.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/engine3D/scene.cpp b/engine3D/scene.cpp index 9ef8fff..561e55c 100644 --- a/engine3D/scene.cpp +++ b/engine3D/scene.cpp @@ -111,7 +111,7 @@ 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); - if (!axisMesh->getMesh()) { + if (axisMesh->meshExists()) { axisMesh->draw(GL_LINES); //main axis } } diff --git a/engine3D/shape.cpp b/engine3D/shape.cpp index 6a07349..53b40b5 100644 --- a/engine3D/shape.cpp +++ b/engine3D/shape.cpp @@ -105,6 +105,6 @@ void Shape::getPoints(std::list &pList) } -bool Shape::getMesh() { - return (mesh == nullptr); +bool Shape::meshExists() { + return (mesh != nullptr); } \ No newline at end of file diff --git a/engine3D/shape.h b/engine3D/shape.h index e6c4361..ff509ee 100644 --- a/engine3D/shape.h +++ b/engine3D/shape.h @@ -24,7 +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 getMesh(); + bool meshExists(); virtual ~Shape(void); };