Fully doable with static shapes, shouldn't be any real performance hit if they have short lifetimes. I'll look into it.
function staticShape::disappear(%obj, %speed, %delete)
{
cancel(%obj.disappearSched);
if(%speed < 1)
{
%speed = 125;
}
%color = %obj.disappearColor;
if(%obj.disappearColor $= "")
{
%color = "1 1 1 1";
}
%alpha = getWord(%color, 3);
if(%alpha <= 0)
{
if(%delete)
{
%obj.delete();
}
return;
}
if(%alpha - 0.05 < 0)
{
%alpha = 0;
}
else
{
%alpha -= 0.05;
}
%obj.setNodeColor("ALL", getWords(%color, 0, 2) SPC %alpha);
%obj.schedule(%speed, disappear, %speed, %delete);
}
package staticShape_disappear
{
function staticShape::setNodeColor(%obj, %node, %color)
{
parent::setNodeColor(%obj, %node, %color);
if(%node $= "ALL")
{
%obj.disappearColor = %color;
}
}
};
activatePackage(staticShape_disappear);