osgParticle库提供了多种可以用来模拟粒子效果的操作器(operator), 其中OrbitOperator就是其中之一,它可以让粒子绕着某一个轨道旋转。本文主要介绍OpenSceneGraph中的osgParticle.OrbitOperator类。
osgParticle.OrbitOperator是一个继承自osgParticle.Operator的类,所以它可以与其他的操作器一起使用。该操作器可以让粒子绕着一个轨道旋转,轨道的形状可以是椭圆、圆形或者其他形状。
osgParticle.OrbitOperator可以通过以下几个方式来创建:
使用默认参数创建:
osg::ref_ptr<osgParticle::OrbitOperator> orbitOperator = new osgParticle::OrbitOperator;
指定中心点,轴向速度和轨道半径:
osg::Vec3f center;
float radius;
osg::Vec3f velocity;
osg::ref_ptr<osgParticle::OrbitOperator> orbitOperator = new osgParticle::OrbitOperator(center, radius, velocity);
指定中心点,轴向速度,轨道半径和轨道模板:
osg::Vec3f center;
float radius;
osg::Vec3f velocity;
osg::ref_ptr<osgParticle::OrbitOperator::Ellipse> ellipse = new osgParticle::OrbitOperator::Ellipse;
osg::ref_ptr<osgParticle::OrbitOperator> orbitOperator = new osgParticle::OrbitOperator(center, radius, velocity, ellipse);
在使用完成后,需要将创建的osgParticle.OrbitOperator添加到osgParticle.ParticleSystem中。
setCenter(const osg::Vec3f& center)
设置轨道的中心点位置。
setRadius(float radius)
设置轨道半径。
setVelocity(const osg::Vec3f& velocity)
设置轴向速度。
setShape(osgParticle.OrbitOperator::Ellipse shape)*
设置轨道的形状,可以是椭圆、圆形等。
setUseQuat(bool useQuat)
设置是否使用四元数进行旋转。
setEpsilon(float epsilon)
设置椭圆度数误差。