Added handling of null pointer

This commit is contained in:
Robert Osfield
2016-06-30 10:01:18 +01:00
parent be26725867
commit 2a5098eacb

View File

@@ -35,11 +35,14 @@ public:
case osg::PrimitiveSet::DrawArraysPrimitiveType:
{
osg::DrawArrays* dw = dynamic_cast<osg::DrawArrays*>(ps);
unsigned int start = dst.size();
osg::DrawArrays* ndw = new osg::DrawArrays(dw->getMode(), start, dw->getNumIndices());
newGeometry->getPrimitiveSetList().push_back(ndw);
for ( unsigned int j = 0; j < dw->getNumIndices(); j++) {
srcArrays.append(dw->getFirst()+j, dst);
if (dw)
{
unsigned int start = dst.size();
osg::DrawArrays* ndw = new osg::DrawArrays(dw->getMode(), start, dw->getNumIndices());
newGeometry->getPrimitiveSetList().push_back(ndw);
for ( unsigned int j = 0; j < dw->getNumIndices(); j++) {
srcArrays.append(dw->getFirst()+j, dst);
}
}
}
break;
@@ -60,17 +63,20 @@ public:
case osg::PrimitiveSet::DrawArrayLengthsPrimitiveType:
{
osg::DrawArrayLengths* dal = dynamic_cast<osg::DrawArrayLengths*>(ps);
unsigned int start = dst.size();
unsigned int offset = dal->getFirst();
unsigned int totalDrawArraysVertexes = 0;
for (unsigned int j = 0; j < dal->size(); j++) {
totalDrawArraysVertexes += (*dal)[j];
}
osg::DrawArrays* ndw = new osg::DrawArrays(dal->getMode(), start, totalDrawArraysVertexes);
newGeometry->getPrimitiveSetList().push_back(ndw);
if (dal)
{
unsigned int start = dst.size();
unsigned int offset = dal->getFirst();
unsigned int totalDrawArraysVertexes = 0;
for (unsigned int j = 0; j < dal->size(); j++) {
totalDrawArraysVertexes += (*dal)[j];
}
osg::DrawArrays* ndw = new osg::DrawArrays(dal->getMode(), start, totalDrawArraysVertexes);
newGeometry->getPrimitiveSetList().push_back(ndw);
for (unsigned int v = 0; v < totalDrawArraysVertexes; v++) {
srcArrays.append(offset + v, dst);
for (unsigned int v = 0; v < totalDrawArraysVertexes; v++) {
srcArrays.append(offset + v, dst);
}
}
}
break;