vcglib实例

vcglib实例

先给出MyMesh

添加线属性

vcg::tri::UpdateTopology::AllocateEdge(m);

在meshlab中输出log

MeshLabInterface::Log(“xx”);

遍历顶点一邻域

点和面都需要AFadjacent结构

	vcg::face::VFIterator vfi(v);
	for (; !vfi.End(); ++vfi)
	{
		MyFace* f = vfi.F();
		...//do something
	}

其中vfi是顶点v周围面的数组的第一个元素的指针,for循环遍历包含顶点v的所有面。

自己定义顶点属性

自己定义每个顶点的索引

MyMesh::PerVertexAttributeHandle<int> vIndex = vcg::tri::Allocator<MyMesh>::GetPerVertexAttribute<int>(m,std::string("Vertex Index"));

给顶点赋颜色

class MyVertex : public vcg::Vertex<MyUsedTypes,vcg::vertex::Color4b, vcg::vertex::Coord3f > {};

	for (MyMesh::VertexIterator vi = m.vert.begin(); vi != m.vert.end(); ++vi)
	{
		// Shander configuretion
		MyMesh::VertexType::ColorType& colorV = vi->C();
		colorV = vcg::Color4b::Black;
	}
	vcg::tri::io::ExporterOFF<MyMesh>::Save(mOut, "output.off", 4);

给face赋颜色

class MyFace : public  vcg::face::VertexRef, vcg::face::Color4b > {};
	
	for (int i = 0; i < faces.size(); ++i)
	{
		mOut.face[i].C() =  vcg::Color4b::Black;

	}
	vcg::tri::io::ExporterOFF<MyMesh>::Save(mOut, "output.off", vcg::tri::io::Mask::IOM_FACECOLOR);

vcg详细介绍

http://www.doc88.com/p-9005336574343.html

你可能感兴趣的:(计算机图像学)