From 1b6cc8e6b676c7ae89f8dbc180ed401376678611 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 23 Jun 2016 06:51:34 +0100 Subject: [PATCH] Added checks against null pointers and removed #if 0 block. --- src/osgTerrain/GeometryPool.cpp | 58 ++------------------------------- 1 file changed, 3 insertions(+), 55 deletions(-) diff --git a/src/osgTerrain/GeometryPool.cpp b/src/osgTerrain/GeometryPool.cpp index d03ad3e30..e1d00e3ff 100644 --- a/src/osgTerrain/GeometryPool.cpp +++ b/src/osgTerrain/GeometryPool.cpp @@ -175,7 +175,7 @@ osg::ref_ptr GeometryPool::getOrCreateGeometry(osgTerrain::Terra top_right = top_right * matrix; // if we have a geocentric database then transform into geocentric coords. - const osg::EllipsoidModel* em = locator->getEllipsoidModel(); + const osg::EllipsoidModel* em = locator ? locator->getEllipsoidModel() : 0; if (em && locator->getCoordinateSystemType()==osgTerrain::Locator::GEOCENTRIC) { // note y axis maps to latitude, x axis to longitude @@ -261,58 +261,6 @@ osg::ref_ptr GeometryPool::getOrCreateGeometry(osgTerrain::Terra } } -#if 0 - - bool smallTile = numVertices <= 16384; - osg::ref_ptr elements = smallTile ? - static_cast(new osg::DrawElementsUShort(GL_TRIANGLE_STRIP)) : - static_cast(new osg::DrawElementsUInt(GL_TRIANGLE_STRIP)); - - elements->reserveElements( (nx-1) * (ny-1) * 2 + (nx-1)*2*2 + (ny-1)*2*2 +(ny)*2); - geometry->addPrimitiveSet(elements.get()); - - - // first row containing the skirt - int il = 0; - int iu = 0; - for(int c=0; caddElement(iu); - elements->addElement(il); - } - elements->addElement(il); - - // center section - for(int r=0; raddElement(iu); - for(int c=0; caddElement(iu); - elements->addElement(il); - } - elements->addElement(il); - } - - // top row containing skirt - il = nx+(ny-1)*(nx+2)+1; - iu = il+nx+1; - elements->addElement(iu); - for(int c=0; caddElement(iu); - elements->addElement(il); - } - -#else bool smallTile = numVertices <= 16384; GLenum primitiveTypes = GL_QUADS; @@ -361,7 +309,7 @@ osg::ref_ptr GeometryPool::getOrCreateGeometry(osgTerrain::Terra elements->addElement(iu+1); elements->addElement(iu); } -#endif + if (locator) { matrix = locator->getTransform(); @@ -511,7 +459,7 @@ osg::ref_ptr GeometryPool::getTileSubgraph(osgTerrain::Ter osg::Vec3Array* shared_vertices = dynamic_cast(geometry->getVertexArray()); osg::Vec3Array* shared_normals = dynamic_cast(geometry->getNormalArray()); - osg::FloatArray* heights = hf->getFloatArray(); + osg::FloatArray* heights = hf ? hf->getFloatArray() : 0; const SharedGeometry::VertexToHeightFieldMapping& vthfm = geometry->getVertexToHeightFieldMapping(); if (hf && shared_vertices && shared_normals && (shared_vertices->size()==shared_normals->size()))