我的订单|我的收藏|我的商城|帮助中心|返回首页
虚拟现实新闻>VR>行业资讯>培训教程

OSG教程:操作器管理类:KeySwitchMatrixManipulator

文章来源:第三维度 作者: 发布时间:2012年03月31日 点击数: 字号:

    来源:第三维度
    作者:FreeSouth[杨石兴]编著

    选自《OSG程序设计教程》第二章第四节

    osgGA::KeySwitchMatrixManipulator

    类描述:KeySwitchMatrixManipulator类可以被看做一个管理器,管理一些被添加到它里面的操作器,用按键来切换这些操作器。比如‘1’会被切换到TrackBall‘2’会被切换到Driver等等。

    类继承图:

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    类中方法:

    virtual const char * className () const

    说明:返回该类名称。

    void addMatrixManipulator (int key, std::string name, MatrixManipulator *cm)

    说明:添加一个操作器到keySwitchMatrixManipulator中。其中操作器可以是MatrixManipulator也可以是他的派生类型。比如TrackBall.

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    void addNumberedMatrixManipulator (MatrixManipulator *cm)

    说明:添加一个操作器到KeySwitchMatrixManipulator中。其中操作器可以是MatrixManipulator也可以是他的派生类型,比如TrackBall。他的热键是递增的,比上一个加入的热键加一,比如上次加入的热键是1那么这个就是2。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    unsigned int getNumMatrixManipulators () const

    说明:得到当前KeySwitchMatrixManipulator中的操作器个数。返回具体数目。

    void selectMatrixManipulator (unsigned int num)

    说明:选择一个操作器。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    KeyManipMap & getKeyManipMap () const KeyManipMap & getKeyManipMap () const

    说明:得到绑定到这个KeySwitchMatrixManipulator 中所有的操作器,包含键的映射。返回值是KeyManip其实是一个键-值对,前面为操作器对应的键,比如1,后面是对应的名,比如TrackBall

    MatrixManipulator * getCurrentMatrixManipulator () const

    MatrixManipulator * getCurrentMatrixManipulator () const

    说明:得到当前使用的操作器类,返回该类的指针。

    MatrixManipulator * getMatrixManipulatorWithIndex (unsigned int index) const

    MatrixManipulator * getMatrixManipulatorWithIndex (unsigned int index) const

    说明:得到某一个索引对映的操作器,返回该操作器的指针。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    MatrixManipulator * getMatrixManipulatorWithKey (unsigned int key) const

    MatrixManipulator * getMatrixManipulatorWithKey (unsigned int key) const

    说明:得到某一个热键对映的操作器,返回该操作器的指针。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    virtual void setMinimumDistance (float minimumDistance)

    说明:设置最小的矩离。在靠近中心的时候视点会按比率伸缩以保持大于该最小矩。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    virtual void setCoordinateFrameCallback (CoordinateFrameCallback *cb)

    说明:当前绘制坐标系统的回调,该回调的作用是告诉操作者具体的方向,东西南北。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    virtual void setByMatrix (const osg::Matrixd &matrix)

    说明:用矩阵来设置当前视口。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    virtual void setByInverseMatrix (const osg::Matrixd &matrix)

    说明:用逆矩阵来设置当前视口。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    virtual osg::Matrixd getMatrix () const virtual osg::Matrixd getInverseMatrix () const

    说明:得到当前视口的矩阵/逆矩阵。

    virtual osgUtil::SceneView::FusionDistanceMode getFusionDistanceMode () const

    说明:得到空间融合距模式。返回值为模式值,为下列值之一:USE_FUSION_DISTANCE_VALUE, PROPORTIONAL_TO_SCREEN_DISTANCE

    virtual float getFusionDistanceValue () const

    说明:得到空间融合距值。

    virtual void setNode (osg::Node *n)

    说明:绑定一个结点到KeySwitchMatrixManipulator,会自动的解除以前的结点。如果设置为NULL,则不绑定任何结点。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    virtual const osg::Node * getNode () const

    virtual osg::Node * getNode ()

    说明:得到KeySwitchMatrixManipulator绑定的结点。

    virtual void setHomePosition (const osg::Vec3d &eye, const osg::Vec3d &center, const osg::Vec3d &up, bool autoComputeHomePosition =false)

    说明:设置视口原点,一般为按空格键后返回的点。使用欧拉坐标系固定。

    参数

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    virtual void setAutoComputeHomePosition (bool flag)

    说明:说明是否自动计算视口原点位置。

OSG教程:操作器管理类:KeySwitchMatrixManipulator

    virtual void computeHomePosition ()

    说明:计算视口原点位置。

    virtual void home (const GUIEventAdapter &ee, GUIActionAdapter &aa)

    virtual void init (const GUIEventAdapter &ee, GUIActionAdapter &aa)

    virtual bool handle (const GUIEventAdapter &ea, GUIActionAdapter &us)

    virtual void getUsage (osg::ApplicationUsage &usage) const

   说明:上述是响应事件的一些函数,在事件响应一节中会详加解释。

  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料