osgParticle.range是一个用于定义粒子系统范围的类,它可以定义一个盒子或球体范围。
osgParticle::range();
osgParticle::range(const osg::Vec3& center, float radius);
osgParticle::range(const osg::Vec3& lower, const osg::Vec3& upper);
osgParticle::range(const range& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
osgParticle::range()
:默认构造函数,创建一个0大小的范围。osgParticle::range(const osg::Vec3& center, float radius)
:创建一个球形范围,中心在center
,半径为radius
。osgParticle::range(const osg::Vec3& lower, const osg::Vec3& upper)
:创建一个盒形范围,两个顶点分别为lower
和upper
。osgParticle::range(const range& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY)
:复制构造函数。enum Type
{
SPHERE,
BOX,
};
枚举类型Type
,表示范围类型,可以是球形或盒形。
void setType(Type type);
Type getType() const;
设置或获取范围类型。
void setCenter(const osg::Vec3& center);
osg::Vec3 getCenter() const;
设置或获取球形范围中心点。
void setRadius(float radius);
float getRadius() const;
设置或获取球形范围半径。
void setCorner(const osg::Vec3& corner);
osg::Vec3 getCorner() const;
设置或获取盒形范围对角线两个端点中的其中一个端点。
void setLower(const osg::Vec3& lower);
osg::Vec3 getLower() const;
设置或获取盒形范围较小端点。
void setUpper(const osg::Vec3& upper);
osg::Vec3 getUpper() const;
设置或获取盒形范围较大端点。
创建一个球形范围:
auto sphere = new osgParticle::range(
osg::Vec3(0.0f, 0.0f, 0.0f), // 中心点
1.0f // 半径
);
创建一个盒形范围:
auto box = new osgParticle::range(
osg::Vec3(-1.0f, -1.0f, -1.0f), // 较小端点
osg::Vec3(1.0f, 1.0f, 1.0f) // 较大端点
);