本文整理汇总了C++中SurfaceMesh::vertices_end方法的典型用法代码示例。如果您正苦于以下问题:C++ SurfaceMesh::vertices_end方法的具体用法?C++ SurfaceMesh::vertices_end怎么用?C++ SurfaceMesh::vertices_end使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SurfaceMesh
的用法示例。
在下文中一共展示了SurfaceMesh::vertices_end方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int /*argc*/, char** argv) {
SurfaceMesh mesh;
mesh.read(argv[1]);
float mean_valence = 0.0f;
unsigned int vertex_valence;
// instantiate iterator and circulators
SurfaceMesh::Vertex_iterator vit;
SurfaceMesh::Vertex_around_vertex_circulator vc, vc_end;
// loop over all vertices
for (vit = mesh.vertices_begin(); vit != mesh.vertices_end(); ++vit) {
// initialize circulators
vc = mesh.vertices(*vit);
vc_end = vc;
// reset counter
vertex_valence = 0;
// loop over all incident vertices
do {
++vertex_valence;
} while (++vc != vc_end);
// sum up vertex valences
mean_valence += vertex_valence;
}
mean_valence /= mesh.n_vertices();
std::cout << "mean valence: " << mean_valence << std::endl;
}
示例2: saveScalars
void VertexScalar::saveScalars()
{
if (!mi) return;
SurfaceMesh *mesh = mi->getMesh();
if (!mesh) return;
SurfaceMesh::VertexIter v_it = mesh->vertices_begin();
for (unsigned int i = 0; i < ps->size(); i++) {
if (v_it == mesh->vertices_end()) {
mesh->add_vertex(MyMesh::Point());
} else {
SurfaceMesh::TexCoord2D tc = mesh->texcoord2D(v_it);
tc[0] = (SurfaceMesh::Scalar) getScalar(i);
mesh->set_texcoord2D(v_it, tc);
++v_it;
}
}
while (v_it != mesh->vertices_end()) {
SurfaceMesh::VertexIter extra = v_it;
++v_it; // could do this above but may be confusing
mesh->delete_vertex(extra);
}
}
示例3: loadScalars
void VertexScalar::loadScalars()
{
if (!mi) return;
SurfaceMesh *mesh = mi->getMesh();
if (!mesh) return;
unsigned int i = 0;
for (SurfaceMesh::VertexIter v_it = mesh->vertices_begin(); v_it!=mesh->vertices_end(); ++v_it) {
if (i >= ps->size()) {
ps->addParticle();
}
SurfaceMesh::TexCoord2D tc = mesh->texcoord2D(v_it);
setScalar(i,tc[0]);
i++;
}
for (unsigned int j = ps->size() - 1; j >= i; j--)
ps->removeParticle(j);
}
示例4: main
int main(int /*argc*/, char** argv)
{
SurfaceMesh mesh;
mesh.read(argv[1]);
// get (pre-defined) property storing vertex positions
SurfaceMesh::Vertex_property<Vec3> points = mesh.get_vertex_property<Vec3>("v:point");
SurfaceMesh::Vertex_iterator vit, vend = mesh.vertices_end();
Vec3 p(0,0,0);
for (vit = mesh.vertices_begin(); vit != vend; ++vit)
{
// access point property like an array
p += points[*vit];
}
p /= mesh.n_vertices();
std::cout << "barycenter: " << p << std::endl;
}