|
本帖最后由 zhouweibo 于 2011-12-11 17:14 编辑
if(ea.getKey()=='x'||ea.getKey()=='X')
{
osg::ref_ptr<osgParticle:: PrecipitationEffect> precipitationEffect = new osgParticle:: PrecipitationEffect;
precipitationEffect->snow(0.3);
precipitationEffect->setParticleColor(osg::Vec4(1, 1, 1, 1));
precipitationEffect->setWind(osg::Vec3(1, 0, 0));
if(snowState)//已经下雪,———————————————————此处没有实现,不成功!
{
snowState = false;
if(viewer)
{
viewer->getSceneData()->asGroup()->removeChild(precipitationEffect); // 没起作用,雪依然在下
//precipitationEffect->setNodeMask(0); // 这个也不行
std::cout<<"成功删除下雪结点!"<<snowState<<std::endl; // 成功执行
}
}
else//没有下雪
{
snowState = true;
if(viewer)
{
if(firstSnow)
{
firstSnow = false;
viewer->getSceneData()->asGroup()->addChild(precipitationEffect);
//precipitationEffect->setNodeMask(1);
std::cout<<"成功添加下雪结点!"<<snowState<<std::endl;
}
else
{
precipitationEffect->setNodeMask(1);//————————此处暂时没有什么作用
std::cout<<"成功打开下雪结点的开关!"<<snowState<<std::endl;
}
}
}
} |
|