本文整理汇总了C++中LMESHptr::print方法的典型用法代码示例。如果您正苦于以下问题:C++ LMESHptr::print方法的具体用法?C++ LMESHptr::print怎么用?C++ LMESHptr::print使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LMESHptr
的用法示例。
在下文中一共展示了LMESHptr::print方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
int
main(int argc, char *argv[])
{
int num_levels = 1;
if (argc == 2)
num_levels = max(atoi(argv[1]), 0);
else if(argc != 1) {
err_msg("Usage: %s [ num_levels ] < mesh.sm > mesh-sub.sm", argv[0]);
return 1;
}
LMESHptr mesh = LMESH::read_jot_stream(cin);
if (!mesh || mesh->empty())
return 1; // didn't work
mesh->set_subdiv_loc_calc(new LoopLoc());
if (Config::get_var_bool("JOT_PRINT_MESH")) {
cerr << "input mesh:" << endl;
mesh->print();
}
if (num_levels > 0)
mesh->update_subdivision(num_levels);
if (Config::get_var_bool("JOT_PRINT_MESH")) {
cerr << "level " << num_levels << " mesh:" << endl;
mesh->cur_mesh()->print();
}
mesh->cur_mesh()->write_stream(cout);
return 0;
}
示例2:
/******************************************************************************
Write out a jot .sm file.
******************************************************************************/
void
write_sm()
{
LMESHptr mesh = make_shared<LMESH>();
int i=0;
//******** Build the mesh ********
err_adv(debug, "read ply file: %d vertices, %d faces\n", nverts, nfaces);
err_adv(debug, "building mesh:");
// Add vertices to mesh
err_adv(debug, " adding vertices...");
for (i = 0; i < nverts; i++)
mesh->add_vertex(Wpt(vlist[i]->x, vlist[i]->y, vlist[i]->z));
err_adv(debug, " done\n");
// Add per-vertex colors if needed
if (per_vertex_color) {
err_adv(debug, " adding colors...");
for (i = 0; i < nverts; i++)
mesh->bv(i)->set_color(COLOR(vlist[i]->r, vlist[i]->g, vlist[i]->b));
err_adv(debug, " done\n");
}
// Add faces
err_adv(debug, " adding faces...");
for (i = 0; i < nfaces; i++)
add_face(mesh, flist[i]);
err_adv(debug, " done\n");
//******** Filter the mesh ********
err_adv(debug, "filtering mesh...");
// Remove any isolated vertices
for (i=mesh->nverts()-1; i>=0; i--) {
if (mesh->bv(i)->degree() == 0) {
mesh->remove_vertex(mesh->bv(i));
}
}
mesh->changed();
// Remove duplicate vertices while we're at it
mesh->remove_duplicate_vertices(false); // don't keep the bastards
// Check for consistent orientation of normals
bool is_bad = false;
for (i=0; i<mesh->nedges(); i++)
if (!mesh->be(i)->consistent_orientation())
is_bad = true;
if (is_bad)
err_msg("Warning: inconsistently oriented triangles -- can't fix");
// Optional: recenter mesh
if (Config::get_var_bool("JOT_RECENTER"))
mesh->recenter();
// Optional: print stats
if (Config::get_var_bool("JOT_PRINT_MESH"))
mesh->print();
err_adv(debug, "done\n");
//******** Write mesh ********
err_adv(debug, "writing mesh...");
mesh->write_stream(cout);
err_adv(debug, "done\n");
}