osgWidget.Window
是OpenSceneGraph中的一个UI库,用于创建2D GUI元素。
class Window : public Widget
osgWidget.Window
是osgWidget
库中的一个类,继承自osgWidget.Widget
。它代表一个矩形窗口,可以用于包含其他UI元素,如按钮、文本框或图片。
Window(const std::string &name = "");
name
:窗口的名称。可选参数,默认值为空字符串。
virtual void addChild(osg::Node *child);
添加一个子节点到窗口中。这个子节点可以是任何类型的osg::Node
,可以是另一个osgWidget
的UI元素,也可以是场景中的其他节点。
void removeChild(osg::Node *child);
从窗口中移除一个子节点。
virtual void removeAllChildren();
从窗口中移除所有子节点。
virtual bool handle(const GUIEventAdapter &ea, GUIActionAdapter &aa);
处理用户交互事件,如鼠标点击、键盘按下等。当事件发生时,将调用该函数。
void handlePointerEvent(const GUIEventAdapter &ea, GUIActionAdapter &aa);
处理指针事件,如鼠标移动、滚轮滚动等。在handle()
函数中调用,用于具体处理指针事件。
void setClipRegion(const osg::Vec4 ®ion);
设置窗口的剪裁区域。region
参数是一个四元素向量,表示剪切区域的x、y、宽度和高度。
void setClipRegion(float x, float y, float width, float height);
设置窗口的剪裁区域。x
、y
、width
、height
参数分别表示剪切区域的x、y、宽度和高度。
void setViewport(const osg::Viewport *vp);
设置渲染视口。用于在窗口中渲染场景。
osg::ref_ptr<osg::Camera> getCamera();
返回一个osg::ref_ptr<osg::Camera>
类型的指针,用于控制窗口的相机。相机是渲染场景的关键元素,可以设置焦距、光圈等参数。
void setWindowSize(float width, float height);
设置窗口的大小。width
和height
参数分别表示宽度和高度。
bool isVisible() const;
检查窗口是否可见。
void setVisible(bool visible);
设置窗口是否可见。如果窗口不可见,则不会渲染它和它包含的子节点。