其他分享
首页 > 其他分享> > osg绘制胶囊体

osg绘制胶囊体

作者:互联网

osg绘制胶囊体

 

#include <iostream>
#include <osgViewer/Viewer>
#include <osg/Node>

//#include <osgDB/ReadFile>
//#include <osgDB/WriteFile>

#include <osgUtil\Optimizer>
#include <osg/Geode>
#include <osg/Group>
#include <osg/ShapeDrawable>

//绘制几何体
osg::Geode* createShpe()
{
    //
    osg::Geode *geode = new osg::Geode();
    //半径
    float radius = 0.8f;
    //高度
    float height = 1.8f;

    //精细度
    osg::TessellationHints* hints1 = new osg::TessellationHints();
    //设置精细度
    hints1->setDetailRatio(0.8f);

    //创建胶囊体
    osg::Capsule *capsule = new osg::Capsule(osg::Vec3(0.0f, 0.0f, 0.0f), radius, height);
    osg::ShapeDrawable *draw1 = new osg::ShapeDrawable(capsule, hints1);

    geode->addDrawable(draw1);

    return geode;
}


int main()
{
    osgViewer::Viewer *viewer1 = new osgViewer::Viewer();
    osg::Group *root = new osg::Group();

    root->addChild(createShpe());

    osgUtil::Optimizer optimizer1;
    optimizer1.optimize(root);

    viewer1->setUpViewInWindow(200, 200, 700, 500, 0);

    //viewer1->addEventHandler(new osgViewer::GraphicsWindow::resized(0,0,640,480));
    viewer1->setSceneData(root);

    //viewer1->realize();
    viewer1->run();
    return 0;
}

 

 

 

 

 

##################

标签:绘制,胶囊,root,0.0,new,include,viewer1,osg
来源: https://www.cnblogs.com/herd/p/15124414.html