Commit cac36415 authored by hybrid's avatar hybrid

Add early out when maximal array size is reached.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2860 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 47ee7845
...@@ -45,9 +45,10 @@ void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 array ...@@ -45,9 +45,10 @@ void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 array
{ {
s32 t = 0; s32 t = 0;
TriangleSelectors[i]->getTriangles(triangles + outWritten, TriangleSelectors[i]->getTriangles(triangles + outWritten,
arraySize - outWritten, t, arraySize - outWritten, t, transform);
transform);
outWritten += t; outWritten += t;
if (outWritten==arraySize)
break;
} }
outTriangleCount = outWritten; outTriangleCount = outWritten;
...@@ -64,9 +65,10 @@ void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 array ...@@ -64,9 +65,10 @@ void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 array
{ {
s32 t = 0; s32 t = 0;
TriangleSelectors[i]->getTriangles(triangles + outWritten, TriangleSelectors[i]->getTriangles(triangles + outWritten,
arraySize - outWritten, t, arraySize - outWritten, t, box, transform);
box, transform);
outWritten += t; outWritten += t;
if (outWritten==arraySize)
break;
} }
outTriangleCount = outWritten; outTriangleCount = outWritten;
...@@ -83,9 +85,10 @@ void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 array ...@@ -83,9 +85,10 @@ void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 array
{ {
s32 t = 0; s32 t = 0;
TriangleSelectors[i]->getTriangles(triangles + outWritten, TriangleSelectors[i]->getTriangles(triangles + outWritten,
arraySize - outWritten, t, arraySize - outWritten, t, line, transform);
line, transform);
outWritten += t; outWritten += t;
if (outWritten==arraySize)
break;
} }
outTriangleCount = outWritten; outTriangleCount = outWritten;
...@@ -130,6 +133,7 @@ void CMetaTriangleSelector::removeAllTriangleSelectors() ...@@ -130,6 +133,7 @@ void CMetaTriangleSelector::removeAllTriangleSelectors()
TriangleSelectors.clear(); TriangleSelectors.clear();
} }
//! Return the scene node associated with a given triangle. //! Return the scene node associated with a given triangle.
const ISceneNode* CMetaTriangleSelector::getSceneNodeForTriangle(u32 triangleIndex) const const ISceneNode* CMetaTriangleSelector::getSceneNodeForTriangle(u32 triangleIndex) const
{ {
...@@ -148,7 +152,6 @@ const ISceneNode* CMetaTriangleSelector::getSceneNodeForTriangle(u32 triangleInd ...@@ -148,7 +152,6 @@ const ISceneNode* CMetaTriangleSelector::getSceneNodeForTriangle(u32 triangleInd
} }
} // end namespace scene } // end namespace scene
} // end namespace irr } // end namespace irr
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment