OSG::Drawable, Geode的用法

osg::Drawable表示可绘制的物体的抽象接口,比如文字,基本图形。 可绘制的物体本身不能被加到场景中,要使用Geode将可绘制物体附加到其上。

OSG::Drawable, Geode的用法_第1张图片

这个其实之前的osgText::Text也属于Drawable的范围。还有一些其他的类继承自Drawable,但是由于我没用过,画出来也碍事,就没画了。


#include


int main(int argc, char **argv)
{
	osgViewer::Viewer viewer;


	//创建三角形的顶点数组
	osg::Vec3 myCoords[] =
	{
		osg::Vec3(-10, 0.0, 0.0),
		osg::Vec3(10, 0.0f, 0.0),
		osg::Vec3(0.0, 0.0f, 10.0)
	};
	int numCoords = sizeof(myCoords) / sizeof(osg::Vec3);
	osg::Vec3Array* vertices = new osg::Vec3Array(numCoords, myCoords);


	//创建三角形drawable
	osg::Geometry* triangleGeom = new osg::Geometry();
	// pass the created vertex array to the points geometry object.
	triangleGeom->setVertexArray(vertices);
	//使用这些顶点画三角形
	triangleGeom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::TRIANGLES, 0, numCoords));


	osg::Geode *geode = new osg::Geode;
	geode->addDrawable(triangleGeom);


	viewer.setSceneData(geode);
	return viewer.run();
}


你可能感兴趣的:(OSG)