removed the (useless) template parameter to Per[XXX]DeleteAttribute
This commit is contained in:
parent
917343b0f5
commit
7378ad68a3
|
@ -13,44 +13,60 @@ class MyVertex : public vcg::VertexSimp2< MyVertex, MyEdge, MyFace, vcg::vertex
|
|||
class MyFace : public vcg::FaceSimp2< MyVertex, MyEdge, MyFace, vcg::face::VertexRef, vcg::face::Normal3f> {};
|
||||
|
||||
class MyMesh : public vcg::tri::TriMesh< std::vector<MyVertex>, std::vector<MyFace> > {};
|
||||
|
||||
|
||||
float Irradiance(MyMesh::VertexType v){
|
||||
// .....
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
MyMesh m;
|
||||
//...here m is filled
|
||||
|
||||
// add a per-vertex attribute with type float named "Irradiance"
|
||||
MyMesh::PerVertexAttributeHandle<float> ih = vcg::tri::Allocator<MyMesh>::AddPerVertexAttribute<float> (m,std::string("Irradiance"));
|
||||
|
||||
// add a per-vertex attribute with type float named "Radiosity"
|
||||
vcg::tri::Allocator<MyMesh>::AddPerVertexAttribute<float> (m,std::string("Radiosity"));
|
||||
|
||||
// add a per-vertex attribute with type bool and no name specified
|
||||
MyMesh::PerVertexAttributeHandle<bool> blocked_h = vcg::tri::Allocator<MyMesh>::AddPerVertexAttribute<bool> (m);
|
||||
|
||||
MyMesh::VertexIterator vi; int i = 0;
|
||||
for(vi = m.vert.begin(); vi != m.vert.end(); ++vi,++i){
|
||||
ih[vi] = Irradiance(*vi); // [] operator takes a iterator
|
||||
ih[*vi] = Irradiance(*vi); // or a MyMesh::VertexType object
|
||||
ih[&*vi]= Irradiance(*vi); // or a pointer to it
|
||||
ih[i] = Irradiance(*vi); // or an integer index
|
||||
}
|
||||
|
||||
// Once created with AddPerVertexAttribute, an handle to the attribute can be obtained as follows
|
||||
MyMesh::PerVertexAttributeHandle<float> rh = vcg::tri::Allocator<MyMesh>::GetPerVertexAttribute<float>(m,"Radiosity");
|
||||
|
||||
// you can query if an attribute is present or not
|
||||
bool hasRadiosity = vcg::tri::HasPerVertexAttribute(m,"Radiosity");
|
||||
|
||||
// you can delete an attibute by name
|
||||
vcg::tri::Allocator<MyMesh>::DeletePerVertexAttribute<float>(m,"Radiosity");
|
||||
|
||||
// you can delete an attibute by handle
|
||||
vcg::tri::Allocator<MyMesh>::DeletePerVertexAttribute<bool>(m,blocked_h);
|
||||
}
|
||||
|
||||
|
||||
float Irradiance(MyMesh::VertexType v){
|
||||
// .....
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
|
||||
MyMesh m;
|
||||
//...here m is filled
|
||||
|
||||
// add a per-vertex attribute with type float named "Irradiance"
|
||||
MyMesh::PerVertexAttributeHandle<float> ih = vcg::tri::Allocator<MyMesh>::AddPerVertexAttribute<float> (m,std::string("Irradiance"));
|
||||
|
||||
// add a per-vertex attribute with type float named "Radiosity"
|
||||
vcg::tri::Allocator<MyMesh>::AddPerVertexAttribute<float> (m,std::string("Radiosity"));
|
||||
|
||||
// add a per-vertex attribute with type bool and no name specified
|
||||
MyMesh::PerVertexAttributeHandle<bool> blocked_h = vcg::tri::Allocator<MyMesh>::AddPerVertexAttribute<bool> (m);
|
||||
|
||||
// add a per-vertex attribute with type bool and no name specified
|
||||
MyMesh::PerFaceAttributeHandle<bool> blocked_hf = vcg::tri::Allocator<MyMesh>::AddPerFaceAttribute<bool> (m);
|
||||
|
||||
MyMesh::VertexIterator vi; int i = 0;
|
||||
for(vi = m.vert.begin(); vi != m.vert.end(); ++vi,++i){
|
||||
ih[vi] = Irradiance(*vi); // [] operator takes a iterator
|
||||
ih[*vi] = Irradiance(*vi); // or a MyMesh::VertexType object
|
||||
ih[&*vi]= Irradiance(*vi); // or a pointer to it
|
||||
ih[i] = Irradiance(*vi); // or an integer index
|
||||
}
|
||||
|
||||
// Once created with AddPerVertexAttribute, an handle to the attribute can be obtained as follows
|
||||
MyMesh::PerVertexAttributeHandle<float> rh = vcg::tri::Allocator<MyMesh>::GetPerVertexAttribute<float>(m,"Radiosity");
|
||||
|
||||
// you can query if an attribute is present or not
|
||||
bool hasRadiosity = vcg::tri::HasPerVertexAttribute(m,"Radiosity");
|
||||
|
||||
// you can delete an attibute by name
|
||||
vcg::tri::Allocator<MyMesh>::DeletePerVertexAttribute(m,"Radiosity");
|
||||
|
||||
// you can delete an attibute by handle
|
||||
vcg::tri::Allocator<MyMesh>::DeletePerVertexAttribute(m,blocked_h);
|
||||
|
||||
bool res ;
|
||||
|
||||
res = vcg::tri::Allocator<MyMesh>::IsValidHandle(m,ih);printf("%d\n",res);
|
||||
res = vcg::tri::Allocator<MyMesh>::IsValidHandle(m,blocked_hf);printf("%d\n",res);
|
||||
vcg::tri::Allocator<MyMesh>::DeletePerVertexAttribute(m,ih);
|
||||
vcg::tri::Allocator<MyMesh>::DeletePerFaceAttribute(m,blocked_hf);
|
||||
res = vcg::tri::Allocator<MyMesh>::IsValidHandle(m,ih);printf("%d\n",res);
|
||||
res = vcg::tri::Allocator<MyMesh>::IsValidHandle(m,blocked_hf);printf("%d\n",res);
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue