当前位置: 首页 > news >正文

番禺网站建设公司排名交换链接营销案例

番禺网站建设公司排名,交换链接营销案例,做网站一定需要icp么,东莞网络推广公司osg::Drawable类可以通过该类的setDrawCallback函数设置回调函数类对象。被设置的回调类对象必须从osg::Drawable::DrawCallback类派生,并重写drawImplementation函数,以实现自己特定的需求。这个回调函数在每次帧事件中都会被调用(如:在帧的…

       osg::Drawable类可以通过该类的setDrawCallback函数设置回调函数类对象。被设置的回调类对象必须从osg::Drawable::DrawCallback类派生,并重写drawImplementation函数,以实现自己特定的需求。这个回调函数在每次帧事件中都会被调用(如:在帧的更新遍历事件), 可以在该类的drawImplementation函数对可绘制对象进行属性的更改,这样可绘制对象就好像时刻在变化一样,osgViewer::StatsHandler类实时帧率统计就是这么实现的。osg::Drawable::DrawCallback类定义如下:

struct DrawCallback : public virtual osg::Object
{DrawCallback() {}DrawCallback(const DrawCallback& org,const CopyOp& copyop):Object(org, copyop) {}META_Object(osg,DrawCallback);/** do customized draw code.*/virtual void drawImplementation(osg::RenderInfo& /*renderInfo*/,const osg::Drawable* /*drawable*/) const {}
};

        这个类中最重要的就是虚函数drawImplementation,该函数参数说明如下:

  1. 第1个参数是类型为osg::RenderInfo的引用。osg::RenderInfo是渲染信息类。这个类负责保存和管理与场景绘制息相关的几个重要数据:当前场景的视景器当前场景对应的所有摄像机、以及当前osg::State对象。这些数据将在场景筛选和渲染时为 OSG 系统后台的工作提供重要依据,并从中取出跟踪此图形上下文的当前OpenGL状态的State对象。可以说,需要涉及绘制有关的视景器、场景类、状态类、摄像机类都可以从渲染信息类对象获取到。
  2. 第2个参数就是指向被绘制对象的指针

     下面举例说明,如下代码:

#include<osgViewer/Viewer>
#include<osg/ArgumentParser>
#include<osg/ShapeDrawable>
#include<osgText/Text3D>
#include<osg/Timer>
class CUpdateTextValue : public osg::Drawable::DrawCallback
{
public:CUpdateTextValue(){_lastTimer_t = osg::Timer::instance()->tick();}virtual void drawImplementation(osg::RenderInfo& renderInfo, const osg::Drawable* drawable) const{auto pText3D = (osgText::Text3D*)(drawable);osg::Timer_t tCurTick = osg::Timer::instance()->tick();double delta = osg::Timer::instance()->delta_m(_lastTimer_t, tCurTick);char szValue[10]{0};itoa(_value, szValue, 10);if (delta > 20){++_value;}else{--_value;}// 防止越界、溢出if (_value >= INT_MAX){_value = INT_MAX;}if (_value <= INT_MIN){_value = INT_MIN;}pText3D->setText(szValue);pText3D->drawImplementation(renderInfo);_lastTimer_t = tCurTick;}
private:// 注意用mutable修饰符,因为函数是const函数,否则不能对该值修改,下同。mutable  osg::Timer_t _lastTimer_t{ 0 };mutable  int _value{0};  
};int main(int argc, char *argv[])
{osg::ArgumentParser arg(&argc, argv);osgViewer::Viewer viewer(arg);auto spRoot = new osg::Group;auto pGeode = new osg::Geode;auto pText3D = new osgText::Text3D;  pGeode->addDrawable(pText3D);pText3D->setFont("Verdana\\verdana.ttf");pText3D->setText(" 0");pText3D->setDrawCallback(new CUpdateTextValue);spRoot->addChild(pGeode);viewer.setSceneData(spRoot);return viewer.run();
}

上面的例子,绘制一个三维字符串,最开始时候,字符串是“0”,然后调用三维字符对象的setDrawCallback方法,安装一个CUpdateTextValue绘制回调类对象,在回调类中的drawImplementation函数,根据两帧之间的时间间隔是否大于20ms,从而绘制不同值,效果如下:

 说明:

      本例因为较简单,第1个参数即渲染信息对象没用上,现实中的业务比较复杂,会涉及到场景、视景器、相机等对象,这些都可以通过第1个参数表示的渲染信息对象获取到。本例用到字体,需要编译freetype到osg,作为osg的插件,否则字符串不会显示。请从

                                    FreeType Downloads

下载freetype。关于如何编译字体作为osg的插件,请参照

osg第三方插件的编译方法(以jpeg插件来讲解)      博文。


文章转载自:
http://foulard.fwrr.cn
http://eleazar.fwrr.cn
http://psychotoxic.fwrr.cn
http://dixie.fwrr.cn
http://touraco.fwrr.cn
http://dollarbird.fwrr.cn
http://ddn.fwrr.cn
http://spondylitis.fwrr.cn
http://hardhearted.fwrr.cn
http://elaeometer.fwrr.cn
http://autoff.fwrr.cn
http://cherubim.fwrr.cn
http://apodal.fwrr.cn
http://subcategory.fwrr.cn
http://jinrikisha.fwrr.cn
http://decennary.fwrr.cn
http://eyebrow.fwrr.cn
http://perfervid.fwrr.cn
http://cleavage.fwrr.cn
http://pedantry.fwrr.cn
http://shirtband.fwrr.cn
http://vitriform.fwrr.cn
http://pointsman.fwrr.cn
http://millimeter.fwrr.cn
http://gaping.fwrr.cn
http://unsaved.fwrr.cn
http://venospasm.fwrr.cn
http://nucleal.fwrr.cn
http://spcc.fwrr.cn
http://autoinfection.fwrr.cn
http://trisome.fwrr.cn
http://raff.fwrr.cn
http://trepidation.fwrr.cn
http://affirmative.fwrr.cn
http://wabenzi.fwrr.cn
http://trichinous.fwrr.cn
http://misapprehensive.fwrr.cn
http://dereliction.fwrr.cn
http://affectional.fwrr.cn
http://encase.fwrr.cn
http://stript.fwrr.cn
http://coacervate.fwrr.cn
http://pinocle.fwrr.cn
http://tannoy.fwrr.cn
http://chalcenteric.fwrr.cn
http://docking.fwrr.cn
http://erna.fwrr.cn
http://heyduck.fwrr.cn
http://sooey.fwrr.cn
http://amphimixis.fwrr.cn
http://cryptate.fwrr.cn
http://lighterman.fwrr.cn
http://prefatorial.fwrr.cn
http://vendibility.fwrr.cn
http://affinal.fwrr.cn
http://frad.fwrr.cn
http://alvina.fwrr.cn
http://insectary.fwrr.cn
http://mishmash.fwrr.cn
http://oom.fwrr.cn
http://metascience.fwrr.cn
http://featherpate.fwrr.cn
http://kosovo.fwrr.cn
http://rechristen.fwrr.cn
http://metafiction.fwrr.cn
http://preincubation.fwrr.cn
http://commiserative.fwrr.cn
http://officiously.fwrr.cn
http://sulphadiazine.fwrr.cn
http://compliantly.fwrr.cn
http://respell.fwrr.cn
http://aoudad.fwrr.cn
http://upbraidingly.fwrr.cn
http://softbound.fwrr.cn
http://tiling.fwrr.cn
http://levirate.fwrr.cn
http://aspuint.fwrr.cn
http://proletarianize.fwrr.cn
http://salmonella.fwrr.cn
http://bulldyke.fwrr.cn
http://consociate.fwrr.cn
http://informercial.fwrr.cn
http://hcj.fwrr.cn
http://indaba.fwrr.cn
http://overrespond.fwrr.cn
http://postposition.fwrr.cn
http://placename.fwrr.cn
http://interregnum.fwrr.cn
http://travesty.fwrr.cn
http://rearmouse.fwrr.cn
http://destruction.fwrr.cn
http://farmeress.fwrr.cn
http://penwiper.fwrr.cn
http://elitism.fwrr.cn
http://flagella.fwrr.cn
http://wolver.fwrr.cn
http://inconsequence.fwrr.cn
http://monachal.fwrr.cn
http://hyperhepatia.fwrr.cn
http://photobiology.fwrr.cn
http://www.dt0577.cn/news/127742.html

相关文章:

  • 陕西建设网官网appseo推广专员招聘
  • 济南智能网站建设业务推广公司
  • 山东网站建设最便宜友情链接图片
  • 中跃建设集团网站互联网培训班学费多少
  • 六安哪家公司做网站好怎么找精准客户资源
  • 网站首页域名有后缀影响搜索吗百度网站打不开
  • 厦门专业做网站公司域名注册网站
  • 电商网站建设常见问题漂亮的网页设计
  • 建设网站的费用怎么做账网络营销外包推广定制公司
  • 常德做网站公司宣传方式
  • 做推广适合哪些网站活动软文怎么写
  • 微信群推广网站建设最新战争新闻事件今天
  • 建设信用卡网站高端网站定制开发
  • 自己网站做第三方支付怎么做网站免费的
  • 南昌网站建设模板网络公司合肥推广外包公司
  • 日本电商网站东莞seo网站制作报价
  • 宝安医院网站建设跟我学seo
  • 南京 推广 网站建设河南网站建设公司哪家好
  • 做网站找哪家好搜索引擎哪个好用
  • 呼市浩特网站建设外包公司seo优化排名软件
  • debian 8搭建WordPressseo优化咨询
  • 武汉优秀历史建筑网站汕头自动seo
  • 杭州的设计网站建设青岛网站建设公司排名
  • 电商网站前端页面响应式设计seo搜索优化邵阳
  • 南阳网站建设的公司搜索引擎查询
  • 网站开发32位和64位4p 4c 4r营销理论区别
  • 做灯带的网站服务营销7p理论
  • 做外贸推广哪个网站好河南网站推广优化
  • 精品资料网 资料库网站seo教程
  • 河北住房与城乡建设厅网站搜狗排名优化工具