您的位置:首页 > 编程语言 > PHP开发

1、osgViewer::Viewer,osgViewer::ViewerBase,osgGA::KeySwitchMatrixManipulator,osg::ArgumentParser的说明

2015-12-07 23:29 856 查看
一、osgViewer::Viewer类

Viewer()
Viewer (osg::ArgumentParser &arguments)
Viewer (const osgViewer::Viewer &viewer, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
说明:这三个函数是osgViewer::Viewer的构造函数。其中第一个为常见的构造函数。第二个构造函数为从类osg::ArgumentParser中传递参数入Viewer,类ArgumentParser可以获取main入口参数以及程序的其它信息,也可以判断传参是否有误。第三个重载的构造函数为从另一个Viewer创建新Viewer,里面的第一个参数表示源Viewer,而第二个参数表示使用的拷贝类型,参数主要有两个,一个是浅拷贝:SHALLOW_COPY,另一个则是深拷贝:DEEP_COPY_OBJECTS,关于OSG中的拷贝类型可以参照类osg::CopyOp。

1、virtual void take (View &rhs)

说明:功能是从一个View中得到它的所有设置,这其中包括相机和子相机以及子视口等等,得到后View会被销毁。

2、virtual bool readConfiguration (const std::string &filename)

说明:该方法是从类osgViewer::ViewerBase中继承下来的方法,功能是读取一个配置文件来配置Viewer.现实中并不是常用读配置文件的方法来设置Viewer.如果读取成功,则返回True,返则返回false,参数filename表示该配置文件的名称,可以带路径名。

3、virtual bool isRealized () const

说明:该方法是从类osgViewer::ViewerBase中继承下来的方法,功能是看Viewer是否已经执行了Realize操作,如果执行了则返回真,事则返回假。

4、virtual void realize ()

说明:该方法是从类osgViewer::ViewerBase中继承下来的方法,功能是该操作会使对Viewer之前的设置都使之生效。

5、virtual void setStartTick (osg::Timer_t tick)

说明:该方法是从类osgViewer::View中的方法,功能是设置时钟开始滴答点数,从那里开始计时。可以用于计算程序运行的时间等等,参数tick代表时间,单位是毫秒,osg::Timer_t其实是unsigned long long类型

6、void setReferenceTime (double time=0.0)

说明:设置参考时间,与上一个函数配合来使用。

7、virtual void setSceneData (osg::Node *node)

说明:设置场景中的数据,为场景中渲染的实际数据。

8、virtual GraphicsWindowEmbedded * setUpViewerAsEmbeddedInWindow (int x, int y, int width, int height)

说明:该函数的功能是以嵌入式窗口的形式来设置该Viewer的渲染面。返回指向嵌入式界面指针,其中x,y是坐标,widht和height是窗口的宽度和高度。

9、virtual double elapsedTime ()

说明:该函数可以计算程序执行的时间,返回值为程序执行的时间,一般为毫秒级。

10、virtual osg::FrameStamp * getViewerFrameStamp ()

说明:这个函数返回当前Viewer的一个FrameStamp,至于什么是FrameStamp,大意是说规定两个时间,在此时间中规定帧的数目,在渲染时会按照这个帧数来把帧压在这个时间段当中。

11、virtual int run ()

说明:开始执行渲染操作,返回值一般为1。程序退出或出错时会返回0。

12、virtual void advance (double simulationTime=USE_REFERENCE_TIME)

说明:高级,表示从默认参考时间开始会计算一些信息,帧速,帧率,帧间隔等等。simulationTime表示开始执行时间,一般默认为参考时间

13、virtual void eventTraversal ()

说明:事件遍历,遍历外部事件来处理场景中因事件发生而引起的渲染变化。

14、virtual void updateTraversal ()

说明:更新遍历,遍历更新场景的数据渲染。

15、void setCameraWithFocus (osg::Camera *camera)

说明:设置相机。

16、osg::Camera * getCameraWithFocus ()

const osg::Camera * getCameraWithFocus () const

说明:得到相机,返回值为一个相机。

17、virtual void getCameras (Cameras &cameras, bool onlyActive=true)

说明:得到相机群。参数一为引用类型,执行该函数后cameras就含有了Viewer的相机群。第二个参数是否获得激活可用的相机群,false表示不获得,true表示获得,默认值为true。

18、virtual void getContexts (Contexts &contexts, bool onlyValid=true)

说明:得到上下文,参数一为引用类型,执行该函数后contexts中就含有了Viewer的上下文。第二个参数表示是否获得激活可用的上下文,false表示不获得,true表示获得,默认值为true。

19、virtual void getWindows (Windows &windows, bool onlyValid=true)

说明:得到Windows,这里的Windows并不能直接理解为所谓的窗口,应该理解为一个渲染面。执行该函数后windows中就含有了Viewer中的windows,第二个参数表示是否获得激活可用的窗口,false表示不获得,true表示获得,默认值为true。

20、virtual void getAllThreads (Threads &threads, bool onlyActive=true)

说明:得到所有当前Viewer中的线程,执行该函数后threads中会有该Viewer的线程,第二个参数表示是否获得正在激活的线程,false表示不获得,true表示获得,默认值为true。

21、virtual void getOperationThreads (OperationThreads &threads, bool onlyActive=true)

说明:得到操作线程[OperationThreads],执行该函数后threads中会有该Viewer的操作线程,第二个参数表示是否获得正在激活的操作线程,false表示不获得,true表示获得,默认值为true。

22、virtual void getScenes (Scenes &scenes, bool onlyValid=true)

说明:得到当前Viewer的Scenes, 执行该函数后scnes中会有该Viewer的scenes。第二个参数表示是否获得可用的scenes,false表示不获得,默认值为真。

23、virtual void getViews (Views &views, bool onlyValid=true)

说明:得到当前Viewer的View,执行该函数后views中会有该Viewer的views。第二个参数表示是否获得可用的views,false表示不获得,默认值为真。

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

说明:得到当前Viewer的命令行描述。

二、osgViewer::ViewerBase类

类描述:是view的基本类,同时也是osgViewer::CompositeViewer和osgViewer::Viewer的父类,由于是osgViewer::Viewer的父类,所以它的方法一般都会提供给osgVIewer::Viewer使用,而且非常重要。

ViewerBase ()
ViewerBase (const ViewerBase &vb)


说明:构造函数。第二个构造函数为从一个已知的ViewerBase中创建新ViewerBase.,vb为已知的源ViewerBase,用来创建新的ViewerBase

1、void setStats (osg::Stats *stats)
说明:设置状态事件,包含一些事件的响应,状态这里要注意与StateSet的区别,这里是指响应的状态。以及渲染时的一些状态设置。

2、osg::Stats * getStats ()

const osg::Stats * getStats () const

说明:为得到已经设置的状态类,返回值即为状态类指针。

3、virtual bool readConfiguration (const std::string &filename)=0

virtual bool isRealized () const =0

virtual void realize ()=0

说明:以上三个为纯虚函数,会在子类中实现,这是C++的机制决定的,具体些会在osgViewer::Viewer类以及osgViewer::CompositViewer子类中加以实现。

4、virtual void setThreadingModel (ThreadingModel threadingModel)

说明:设置线程模式。其中threadingModel的值可以为:SingleThreaded,CullDrawThreadPerContext,ThreadPerContext,DrawThreadPerContext,CullThreadPerCameraDrawThreadPerContext,ThreadPerCamera,AutomaticSelection

5、ThreadingModel getThreadingModel () const

说明:得到线程模式,返回值为当前的线程模式。

6、virtual ThreadingModel suggestBestThreadingModel ()

说明:根据当前场景的特点,得到一个最好的建议线程模式。返回值为该线程模式。

7、virtual void setUpThreading ()

说明:为每个线程建立相对应的线程模式。

8、bool areThreadsRunning () const

说明:线程是否全部运行。如果全部运行则返回真,否则返回假。

9、virtual void stopThreading ()

说明:停止线程运行。

10、virtual void startThreading ()

说明:开始线程运行。

11、void setEndBarrierPosition (BarrierPosition bp)

说明:选择结束时是在交换Buffer之前还是在交换Buffer之后,bp表示选择结束时的位置,其值可以为以下两个值:BeforeSwapBuffers,AfterSwapBuffers

12、BarrierPosition getEndBarrierPosition () const

说明:得到最后结束时的位置,一般为个人设置的值。返回值为位置值,为BeforeSwapBuffers 或者 AfterSwapBuffers。

13、void setDone (bool done)

说明:设置是否渲染完毕。如果设置为true则程序会结束。

14、bool done () const

说明:返回当前渲染状态,如果没有退出则返回真。

15、void setEventVisitor (osgGA::EventVisitor *eventVisitor)

说明:设置事件遍历器。事件遍历器可以访问事件,eventVisitor为传递过去访问事件的访问器。

16、osgGA::EventVisitor * getEventVisitor () const

说明:得到事件访问器。返回值为事件访问器。

17、void setKeyEventSetsDone (int key)

说明:设置一个键,点击该键时会setDone(true),这也就是说程序会退出。注意:设置后,再按ESC键程序不会像以前一样退出,key为该键的十进制的ASCII编码,比如32代表空格。

18、int getKeyEventSetsDone () const

说明:得到已经设置的按下就会退出的热键。默认是ESC键。返回值为该键的ASCII编码,比如空格为32.

19、void setQuitEventSetsDone (bool flag)

说明:当设置为真时,当程序收到QUIT_APPLICATION消息时会退出。否则会忽略。

20、bool getQuitEventSetsDone () const

说明:是否设置了程序退出标识。

21、void setUpdateVisitor (osgUtil::UpdateVisitor *updateVisitor)

说明:设置更新访问器。访问器[visitor]是个很重要的概念。

22、osgUtil::UpdateVisitor * getUpdateVisitor () const

说明:得到更新访问器。返回值为指向其的指针。

23、void setUpdateOperations (osg::OperationQueue *operations)

说明:设置一个操作序列。

24、osg::OperationQueue * getUpdateOperations () const

说明:得到一个操作序列,返回值为指向该操作序列的指针。

25、void addUpdateOperation (osg::Operation *operation)

说明:添加一个更新操作。

26、void removeUpdateOperation (osg::Operation *operation)

说明:移除一个更新操作。

27、void setRealizeOperation (osg::Operation *op)

说明:设置一个实现操作。

28、osg::Operation * getRealizeOperation ()

说明:得到一个实现操作。返回值为该操作的指针。

29、void checkWindowStatus ()

说明:检查窗口状态,是一系列的内部检查操作。比如查看窗口的尺寸是否为0,若为0退出等等。

30、virtual void frame (double simulationTime=USE_REFERENCE_TIME)

说明:绘制帧,simulationTime表示设置帧绘制时间,一般为参考时间,这个操作在一般情况下是没有意义的。

31、virtual int run ()=0

virtual void advance (double simulationTime=USE_REFERENCE_TIME)=0

virtual void eventTraversal ()=0

virtual void updateTraversal ()=0

virtual void renderingTraversals ()

virtual void getCameras (Cameras &cameras, bool onlyActive=true)=0

virtual void getContexts (Contexts &contexts, bool onlyValid=true)=0

virtual void getWindows (Windows &windows, bool onlyValid=true)=0

virtual void getAllThreads (Threads &threads, bool onlyActive=true)=0

virtual void getOperationThreads (OperationThreads &threads, bool onlyActive=true)=0

virtual void getScenes (Scenes &scenes, bool onlyValid=true)=0

virtual void getViews (Views &views, bool onlyValid=true)=0

virtual double elapsedTime ()=0

virtual osg::FrameStamp * getViewerFrameStamp ()=0

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

说明:以上为虚函数,在子类中会有实现,具体一些为osgViewer::Viewer和osgViewer::CompositeViewer类。

三、osgGA::KeySwitchMatrixManipulator

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

1、virtual const char * className () const

说明:返回该类名称。

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

说明:添加一个操作器到keySwitchMatrixManipulator中。其中操作器可以是MatrixManipulator也可以是他的派生类型。比如TrackBall.key表示选择热键,比如49代表数字1,name表示操作器名称,可以自己取个好听的名字,不要用中文,cm表示矩阵操作器指针,加入的就是这个操作器。

3、void addNumberedMatrixManipulator (MatrixManipulator *cm)

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

4、unsigned int getNumMatrixManipulators () const

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

5、void selectMatrixManipulator (unsigned int num)

说明:选择一个操作器,num表示操作器的索引值,指第几个操作器。在加入时是按顺序的。

6、KeyManipMap & getKeyManipMap ()

const KeyManipMap & getKeyManipMap () const

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

7、MatrixManipulator * getCurrentMatrixManipulator ()

const MatrixManipulator * getCurrentMatrixManipulator () const

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

8、MatrixManipulator * getMatrixManipulatorWithIndex (unsigned int index)

const MatrixManipulator * getMatrixManipulatorWithIndex (unsigned int index) const

说明:得到某一个索引对映的操作器,返回该操作器的指针,index表示操作器的索引值,比如1代表TrackBall.

9、MatrixManipulator * getMatrixManipulatorWithKey (unsigned int key)

const MatrixManipulator * getMatrixManipulatorWithKey (unsigned int key) const

说明:得到某一个热键对映的操作器,返回该操作器的指针。key表示操作器的热键,比如49代表数字键1.

10、virtual void setMinimumDistance (float minimumDistance)

说明:设置最小的距离。在靠近中心的时候视点会按比率伸缩以保持大于该最小矩,minimumDistance表示最小矩离的数字,一般是以米为单位。

11、virtual void setCoordinateFrameCallback (CoordinateFrameCallback *cb)

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

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

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

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

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

14、virtual osg::Matrixd getMatrix () const

virtual osg::Matrixd getInverseMatrix () const

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

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

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

16、virtual float getFusionDistanceValue () const

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

17、virtual void setNode (osg::Node *n)

说明:绑定一个结点到KeySwitchMatrixManipulator,会自动的解除以前的结点。如果设置为NULL,则不绑定任何结点,n表示要帮定的结点的指针。设置为NULL表示解除一切绑定。

18、virtual const osg::Node * getNode () const

virtual osg::Node * getNode ()

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

19、virtual void setHomePosition (const osg::Vec3d &eye, const osg::Vec3d ¢er, const osg::Vec3d &up, bool autoComputeHomePosition =false)

说明:设置视口原点,一般为按空格键后返回的点。使用欧拉坐标系固定。autoComputeHomePosition表示是否自动计算原点位置,这里默认为false,因为已经指定了视点原点位置。

20、virtual void setAutoComputeHomePosition (bool flag)

说明:说明是否自动计算视口原点位置,flag为真表示自动计算。计算结果一般是包围球的圆心。

21、virtual void computeHomePosition ()

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

22、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

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

四、osg::ArgumentParser类

类描述:读取main函数参数以及外部参数的类,会自动识别外部参数正确与否,它是个单独的类不能存在继承关系。

1、ArgumentParser (int *argc, char **argv)

说明:构造函数,传入参数为main的两个参数。

2、void setApplicationUsage (ApplicationUsage *usage)

说明:设置应用程序类,该类中含有解析命令行,程序名称等等。

3、ApplicationUsage * getApplicationUsage ()

const ApplicationUsage * getApplicationUsage () const

说明:得到应用程序类。返回值为指向应用程序类的指针。

4、int & argc ()

char ** argv ()

说明:得到argc与argv参数。

5、char * operator[] (int pos)

const char * operator[] (int pos) const

说明:得到第pos个参数的命令串,pos表示第几个参数的索引值,比如1代表整个程序的绝对路径。

6、std::string getApplicationName () const

说明:得到应用程序的名称,返回该名称所对应的字串。

7、int find (const std::string &str) const

说明:得到命令行字符串所对应的索引值。返回该索引值,为整数。索引值意思为该行agrc值,str表示用来查询索引值的命令行字符串。

8、bool isOption (int pos) const

说明:判断该位置是否是操作。类似于-o –help –a 等等前面带单或者双划线的一般视为操作。该函数还可以判断是否为有效操作。如果是有效操作则返回真,如果是字符串不代表操作函义则返回假,pos表示需要判断的字符串的位置值,即argc值。

9、bool isString (int pos) const

说明:判断该位置是否是字符串。类似于glider.osg这样前面不带单双划线的又不是纯数字的被视为字符串。字符串一般会表示文件名。如果是字符串则返回真,否则返回假,pos表示需要判断的字符串的位置值,即argc值。

10、bool isNumber (int pos) const

说明:判断该位置是否是数字,类似于-t 10.0 11.0中两个字符串会被视为数字。如果是数字则返回真,否则返回假,pos表示需要判断的字符串的位置值,即argc值。

11、bool containsOptions () const

说明:看命令行中是否包含操作,如果包含操作则返回真,否则返回假。

12、void remove (int pos, int num=1)

说明:移除某一个位置的字符串。可移除多个字串,默认为1,pos表示需要移除的字符串的起始位置,即argc值,num表示需要移除的字符串的个数,默认值为1。

13、bool match (int pos, const std::string &str) const

说明:看pos位置的字串与str是否批配,如果批配则返回真,否则返回假,pos表示需要判断的字符串的起始位置,即argc值,str表示需要判断的目的串值。

14、bool read (const std::string &str)

bool read (const std::string &str, Parameter value1)

bool read (const std::string &str, Parameter value1, Parameter value2)

bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3)

bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4)

bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5)

bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6)

bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6, Parameter value7)

bool read (const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6, Parameter value7, Parameter value8)

bool read (int pos, const std::string &str)

bool read (int pos, const std::string &str, Parameter value1)

bool read (int pos, const std::string &str, Parameter value1, Parameter value2)

bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3)

bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4)

bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5)

bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6)

bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6, Parameter value7)

bool read (int pos, const std::string &str, Parameter value1, Parameter value2, Parameter value3, Parameter value4, Parameter value5, Parameter value6, Parameter value7, Parameter value8)

说明:为实际的读命令行的操作以及其对应的参数。返回值表:如果有该操作串且参数值也满足就返回真,否则返回假。比如read(“-h”)如果有-h则返回真,否则返回假,pos表示需要读取的字符串的起始位置,即argc值,str表示需要读取的字符串的值,value表示带表读入的参数值,可以是整型,实型,布尔型等等。实际枚举值为:BOOL_PARAMETER,FLOAT_PARAMETER,DOUBLE_PARAMETER,INT_PARAMETER,UNSIGNED_INT_PARAMETER,STRING_PARAMETER

15、bool errors (ErrorSeverity severity=BENIGN) const

说明:检查命令行是否有错误,如果有错误则返回真。参数代表检查的级别,分两种,一种是小错,一种就致命错。小错代表不能识别的错误,致命错则可能是其它的任何错误,severity代表要检查的错误是小错还是致命错,以般有以下两个值: BENIGN,CRITICAL默认是小错

16、void reportError (const std::string &message, ErrorSeverity severity=CRITICAL)

说明:报告命令行错误。输出错误信息到message.默认是报告致命的错误级别。输出的错误信息到message.,报告错误的级别,默认是致命错误。可以是BEGIN,CRITICAL

17、void reportRemainingOptionsAsUnrecognized (ErrorSeverity severity=BENIGN)

说明:报告命令行中无法识别的字符串,相当于小错级别,默认为是小错级别,报告命令行中无法识别的字符串,默认是小错级别

18、ErrorMessageMap & getErrorMessageMap ()

const ErrorMessageMap & getErrorMessageMap () const

说明:得到一个错误的消息映射,该映射定义为,键为错误串名,值为错误级别。Error的实际定义是这样的:std::map<std::string,ErrorSeverity>

19、void writeErrorMessages (std::ostream &output, ErrorSeverity sevrity=BENIGN)

说明:输出命令行错误到output,默认输出小错误级别,output一般是std::cout
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: