3D Primitive to VBO mesh update

I’m trying to animate some features of a Box Primitive (but could be applied to others) via the update() method, but I’m running into some issues and am wondering if my technique is wrong. The goal of the script is to take a box primitive, add it as a vbo, and animate the size and color (the alpha portion) until I delete it.

Here’s how I’m creating it (applicable code):

.h

ofBoxPrimitive box;
ofVboMesh mesh;
ofVbo myVbo;

constructor

box.set(startRadius,startRadius,startRadius); //start radius is defined and works
mesh = box.getMesh();

//add color to mesh
std::vector<ofIndexType> allIndices = mesh.getIndices();
std::vector<ofIndexType>::iterator iter;

for (iter = allIndices.begin(); iter != allIndices.end(); iter++)
{
  mesh.addColor(meshColor);
}

myVbo.setMesh(mesh, GL_DYNAMIC_DRAW);

draw()

myVbo.drawElements(GL_TRIANGLE_STRIP, mesh.getNumIndices());

update ()

//add color to mesh
std::vector<ofIndexType> allIndices = mesh.getIndices();
std::vector<ofIndexType>::iterator iter;

float lifeOpacity = ofMap(lifeSpan, 0, lifeSpanTotal, 20, 255);

//increase size
float boxWidth = box.getWidth();
box.setWidth(boxWidth += (lifeOpacity / 200));
float boxHeight = box.getHeight();
box.setHeight(boxHeight += (lifeOpacity / 200));
float boxDepth = box.getDepth();
box.setDepth(boxDepth += (lifeOpacity / 200));

//reset mesh
mesh = box.getMesh();

meshColor.setHsb(hue,saturation,brightness,lifeOpacity);

for (iter = allIndices.begin(); iter != allIndices.end(); iter++)
{
   mesh.setColor(*iter,meshColor);
}

myVbo.updateMesh(mesh);

The problem seems to bee this line

//reset mesh
mesh = box.getMesh();

If I leave it this way, it animates the size of the box, if I comment it out, it animates the color. But, it doesn’t seem to do both. I’m thinking it has something to do with grabbing the mesh from the box in the update method, but I’m not sure why. Thanks!