I believe scale() is like translate(), this means that every time you do scale() it will apply that scale to the prev applied scale, in other words:
Code: Select all
myNode->scale(10); //now the scale is 10
myNode->scale(10); //now the scale is 100
myNode->scale(10); //now the scale is 1000
myNode->scale(1); //now the scale is 1000
myNode->scale(0.5); //now the scale is 50
so probably your mesh is getting too big/small very quickly so it disappears
if that's not your case... still the correct analog version for scale() using setScale() should be:
Code: Select all
sceneNode->setScale(sceneNode->getScale() * relativeAmount);
with * not +, so you probably just using wrong values and comparing it with a wrong setScale