osgUI.ColorPalette是OpenSceneGraph的一个可视化控件,用于设置颜色选择器。
osgUI.ColorPalette是一个简单但强大的颜色选择器控件,它基于OpenSceneGraph的GUI库osgUI实现。该控件是一个可见的网格,每个方格代表一种颜色。用户可以通过鼠标点击选择想要的颜色,或使用十六进制颜色代码手动输入。
osgUI.ColorPalette是一个基于osgUI的颜色选择器控件,定义如下:
class ColorPalette : public GUI::Widget {
public:
ColorPalette(const std::string& name,
const osg::Vec4& color,
float width=100.0f,
float height=100.0f,
int numColors=16);
virtual ~ColorPalette();
osg::Vec4 getColor() const { return _color; }
void setColor(const osg::Vec4& color);
void setNumColors(int numColors);
void setBlockSize(float width, float height);
};
ColorPalette(const std::string& name,
const osg::Vec4& color,
float width=100.0f,
float height=100.0f,
int numColors=16);
构造函数用于创建ColorPalette实例。参数说明如下:
name
:控件名称color
:ColorPalette的默认颜色width
:控件宽度height
:控件高度numColors
:控件包含的颜色数osg::Vec4 getColor() const;
返回当前选择的颜色。
void setColor(const osg::Vec4& color);
设置当前选择的颜色。
void setNumColors(int numColors);
设置颜色选择器控件包含的颜色数。
void setBlockSize(float width, float height);
设置颜色选择器每个方格的大小。
下面是一个使用osgUI.ColorPalette的简单示例:
#include <osgUI/ColorPalette>
#include <osgViewer/Viewer>
int main() {
osg::ref_ptr<osgUI::ColorPalette> palette = new osgUI::ColorPalette("colorChooser", osg::Vec4(1.0f, 1.0f, 1.0f, 1.0f), 200.0f, 200.0f, 32);
osgViewer::Viewer viewer;
viewer.setSceneData(palette);
return viewer.run();
}